Подкаст о разработке ПО и его окрестностях
Рад представить вам 141-й выпуск подкаста, в котором речь вновь идёт про безопасность приложений. У меня в гостях Александр Герасимов, директор по информационной безопасности в компании Awillix и Сергей Овчинников, cloud security architect. В этом выпуске мы говорим о том, что же такое Application Security (AppSec), как обеспечивается безопасность на всех этапах жизненного цикла разработки ПО, какие методы и подходы применяются в тех или иных случаях. Обсуждаем взаимодействие бизнеса, разработки, специалистов по информационной безопасности и devops инженеров. Обсуждаем различные подходы, приёмы и инструменты для непосредственно разработки безопасных приложений, такие как шаблоны приложений, инструменты анализа кода, подходы к созданию контейнеров и базовых образов. Отдельно поговорили про фаззинг приложений: что это такое, как он устроен и как его применять. Не обошли стороной тему кадров и знаний: обсудили где искать специалистов и как выращивать своих, где черпать знания и какие в принципе знания необходимы специалисту по информационной безопасности. В заключении выпуска немного подискутировали о будущем сферы информационной безопасности. Ссылки на ресурсы по темам выпуска: * Just Security (https://t.me/justsecurity). Телеграм канал Александра про исследования, тренды и личный опыт в кибербезопасности. * ISO/IEC 27034-6 Information technology, Security techniques, Application security (https://www.iso.org/standard/60804.html) * CIS Benchmarks (https://www.cisecurity.org/cis-benchmarks/) * CodeQL (https://codeql.github.com/) - code analysis engine developed by GitHub to automate security checks * Заметка «Hunting for XSS with CodeQL» (https://medium.com/codex/hunting-for-xss-with-codeql-57f70763b938) * SonarQube (https://www.sonarqube.org/). Если кто-то его ещё не знает :) * “Software Bill of Materials” (SBOM) (https://www.ntia.gov/SBOM) * Yandex talk from ZeroNights "Company wide SAST" (https://www.youtube.com/watch?v=JK8uUKjo_ag) * Bandit (https://github.com/PyCQA/bandit). Helps to find common security issues in Python code * Owasp ZAP (https://medium.com/cloudadventure/security-in-a-ci-cd-pipeline-876ed8541fa4). Dynamic Application Security Testing tool (DAST) * IAST Seeker (https://www.synopsys.com/software-integrity/security-testing/interactive-application-security-testing.html) * The Docker Bench for Security (https://github.com/docker/docker-bench-security) is a script that checks for dozens of common best-practices around deploying Docker * Kube-bench (https://github.com/aquasecurity/kube-bench) - Checks whether Kubernetes is deployed according to security best practices as defined in the CIS Kubernetes Benchmark * Книга «Kubernetes Security» (https://kubernetes-security.info/) * RESTler for RESP API fuzzing (https://github.com/microsoft/restler-fuzzer) * libFuzzer (https://llvm.org/docs/LibFuzzer.html) a library for coverage-guided fuzz testing * ClusterFuzz (https://google.github.io/clusterfuzz/) is a scalable fuzzing infrastructure that finds security and stability issues in software * OSS-Fuzz (https://github.com/google/oss-fuzz) - continuous fuzzing for open source softwar * Microsoft Sentinel (https://azure.microsoft.com/en-us/services/microsoft-sentinel/). Next-generation security operations with cloud and AI * Книга «Rootkits and Bootkits: Reversing Modern Malware and Next Generation Threats» (https://www.amazon.es/Rootkits-Bootkits-Reversing-Malware-Generation/dp/1593277164) Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon), звёздочками в iTunes (https://podcasts.apple.com/ru/podcast/software-development-podcast/id890468606?l=en) или своём подкаст-плеере, а так же ретвитом или постом! Заходи в телеграм-чат SDCast (https://t.me/SDCast), где можно обсудить выпуски, предложить гостей и высказать свои замечания и пожелания!
Встречайте 140-й выпуск подкаста. У меня в гостях Елена Степанова из компании Nokia, спикер конференций C++ Russia. В этом выпуске мы говорим про мобильные сети, базовые станции, системное программирование, С++ и конференциях! Лена рассказала про свой пусть системного программиста, рассказала как давно и чем занимается в части разработки. Мы обсудили, что представляет из себя мобильная связь, что такое опорная сеть и из каких сервисов она состоит. Подискутировали о множестве стандартов, имеющимхся в телекоме, о роли ассоциации 3GPP и конечно же вендорской реализации этих самых стандартов. Лена рассказала про устройство опорной сети, сервисах и используемых технологиях в разработке. Мы обсудили сложности внедрения новых стандартов С++, вопросы развития и обновления кодовой базы. Обсудили необходимость базовых знаний и где их необходимо применять в системной разработке мобильных сетей. Поговорили мы и про документацию, аккумулирование знаний и выращивание специалистов своими силами. Обсудили собеседования системных программистов, вопросы менторства и наставничества. А так же Лена рассказала про то, как она попала на конференцию C++ Russia в качестве спикера. Ссылки на ресурсы по темам выпуска: * Страничка доклада Лены с С++ Russia ‘21 (https://2021.cppconf.ru/talks/ab-using-enum/) * Доклад Лены «Как обновить компилятор и не тронуться» (https://www.youtube.com/watch?v=kJSXhZzEyZU) Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon), звёздочками в iTunes (https://podcasts.apple.com/ru/podcast/software-development-podcast/id890468606?l=en) или своём подкаст-плеере, а так же ретвитом или постом! Заходи в телеграм-чат SDCast (https://t.me/SDCast), где можно обсудить выпуски, предложить гостей и высказать свои замечания и пожелания!
Что-то давно мы не говорили про тестирование и качество софта, а про тестирование программно-аппаратных комплексов и подавно. Исправляемся! Встречайте 139-й выпуск подкаста. В этот раз у меня в гостях Александр Шкитин, руководитель группы тестирования одного из ключевых продуктов компании ABBYY. В этом выпуске мы говорим о тестировании и качестве распознавания документов. Саша рассказал про компанию и продукты. Если кто-то не знает, в своё время ABBYY FineReader был чуть ли не единственным средством распознавания текстов. Сейчас конечно линейка продуктов расширилась и всё ушло в облака. Мы обсудили в чём особенности тестирования распознавания документов, как оценить качество этого распознавания. Саша рассказал про интересные кейсы из опыта и пограничные случаи. Поговорили про тестирование производительности и связь с качеством. Обсудили вопросы наращивания экспертизы и аккумулирования технических знаний о проекте. Саша рассказал, как у них построено взаимодействие тестировщиков и разработчиков. Подискутировали и о важности не технических навыков, они же soft skills и их влиянии на рабочие процессы и результат. Поговорили и о удалённой работе, сохранении work-life баланса и самоконтроле. Поделились своими приёмами и инструментами самоконтроля и сохранения спокойствия и продуктивности. Ссылки на ресурсы по темам выпуска: * Про общую экспертизу в тестировании: * Книга “Lessons learned in software testing” - нестареющая классика от легенд тестирования. Авторы собрали типовые случаи из своего опыта в сборник небольших историй и уроков, которые лучше выучить на чужом опыте, чем на своём. P.S. Есть русский "фанатский" перевод (https://w-bf.livejournal.com/tag/lessons%20learned%20in%20software%20testing) * Доклад от Анатолия Пласковского (https://www.youtube.com/watch?v=R0PRYqOP9po), в котором клёво рассказывается, что такое тестирование производительности, зачем оно нужно и что бывает, если на него забивать. * Классика от Уиттакера про исследовательское тестирование - Exploratory Software Testing: Tips, Tricks, Tours, and Techniques to Guide Test Design. Как и положено классике, читать непросто, но новой классной информации даёт немало. * Классика от Канемана - "Думай медленно, решай быстро" (https://www.ozon.ru/product/dumay-medlenno-reshay-bystro-kaneman-daniel-240690039/). Более детальное и глубокое исследование о том, как работает наш мозг и в какие ловушки он нас заводит. * О том, как принимать решения и строить планы в условиях повышающейся сложности и непредсказуемости мира отлично написал Нассим Талеб в "Черный лебедь: под знаком неопределенности." (https://www.ozon.ru/product/chernyy-lebed-pod-znakom-nepredskazuemosti-2-e-izd-dopolnennoe-31856341/). То, о чем пишет Талеб легко переносится на мир IT в целом и микромир отдельных продуктов/проектов в частности Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon), звёздочками в iTunes (https://podcasts.apple.com/ru/podcast/software-development-podcast/id890468606?l=en) или своём подкаст-плеере, а так же ретвитом или постом! Заходи в телеграм-чат SDCast (https://t.me/SDCast), где можно обсудить выпуски, предложить гостей и высказать свои замечания и пожелания!
Что вы знаете про 3D графику в вебе? А про стандарты W3C по работе с 3D графикой? У меня в гостях Денис Радин, так же известный в интернетах как PixelCommander, один из первых react разработчиков в Нидерландах и специалист по WebGL. В этом выпуске мы говорим про 3D графику в вебе. Денис рассказал про свой опыт участия в разработке операционной системы для ТВ-приставок, пользовательский интерфейс которой был построен на веб стэке с использованием 3D. Поговорили про фреймворки и библиотеки, предоставляющие высокоуровневый API для работы с графикой: их плюсы и минусы, когда стоит использовать библиотеки, а когда лучше руками писать низкоуровневый код. Мы обсудили для каких задач применяется WebGL, где и как стоит его использовать, обсудили как работает весь стек от вызова API со стороны JavaScript в браузере до выполнения в GPU. Поговорили про API WebGL: как он развивался, устаревал, какие в нём накопились вопросы и проблемы и как на свет появился новый стандарт WebGPU. Денис является одним из организаторов крупной европейской конференции React Summit. Мы поговорили про конференции, выступления, онлайн и оффлайн. Так же Денис рассказал про своё участие в W3C WebGPU Working group. Ссылки на ресурсы по темам выпуска: * Слайды доклада «Что WebGPU значит для Web платформы?» (https://docs.google.com/presentation/d/1ydAPZbMvp6iJHs4k--AIop6wT2HOQWOieBIffKrLKpI/edit#slide=id.gf18191bc23_0_265) * WebGPU W3C Working Draft (https://www.w3.org/TR/webgpu/) * Доклад Дениса «Пиксельные шейдеры для Web-разработчиков» (https://www.youtube.com/watch?v=SszWYsEio7E) с Highload++ 2017 * Доклад Дениса «Интерактивные проекции и 3D-маппинг с помощью web-технологий» (https://www.youtube.com/watch?v=EKHP2y2BGf0) с РИТ++ 2019 Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon), звёздочками в iTunes (https://podcasts.apple.com/ru/podcast/software-development-podcast/id890468606?l=en), а так же ретвитом или постом! Заходи в телеграм-чат SDCast (https://t.me/SDCast), где можно обсудить выпуски, предложить гостей и высказать свои замечания и пожелания!
Давно мы не говорили про безопасность приложений, платформ и вообще аспекты безопасности в разработке. Исправляем! Встречайте 137-й выпуск подкаста. У меня в гостях Артём Кулаков, исследователь безопасности в компании «Positive Technologies». В этом выпуске мы говорим с Артёмом про его путь в айти и трансформацию из разработчика в исследователя безопасности в целом и в контексте мобильной платформы Android в первую очередь. Обсуждаем безопасность самой платформы, её эволюцию, что делают вендоры и Гугл в частности для улучшения безопасности платформы и приложений на ней. Какие есть инструменты, техники, приёмы и механизмы для контроля и предотвращения и улучшения вопросов безопасности. Обсуждаем вопросы документации и базовых знаний разработчиков. Как официальная документация платформы и примеры кода влияют на качество кода разрабатываемых приложений. Какими базовыми знаниями по безопасности необходимо обладать разработчикам. Где и как получать эти знания и информацию. Обсудили тему фреймворков и различных библиотек, который абстрагируют работу с различными системными компонентами и как это влияет на качество кода. Обсудили, какие есть варианты аудита безопасности приложений: внутри компаний и вне. В заключении выпуска немного подискутировали о новых тенденциях и веяниях в области безопасности приложений. Ссылки на ресурсы по темам выпуска: * Проект Артёма “Android Guards”: * Канал в телеграме: https://t.me/android_guards_today * Чат в телеграме: https://t.me/android_guards * Канал на YouTube: https://www.youtube.com/c/AndroidGuards * Подкаст “Android Guards Podcast” в iTunes (https://podcasts.apple.com/us/podcast/android-guards-podcast/id1552280775) * Подкаст “Android Guards Podcast” в Google (https://podcasts.google.com/feed/aHR0cHM6Ly9jbG91ZC5tYXZlLmRpZ2l0YWwvMzI2NzM) * Статья про предсказуемый рандом в паролях Касперского (en) (https://donjon.ledger.com/kaspersky-password-manager/) * Заметка “Zoom Lied about End-to-End Encryption” (https://www.schneier.com/blog/archives/2021/08/zoom-lied-about-end-to-end-encryption.html) * iOS 15 RCE: * https://saaramar.github.io/IOMFB_integer_overflow_poc/ * https://github.com/jonathandata1/ios_15_rce * OWASP Top Ten: * Web: https://owasp.org/www-project-top-ten/ * API: https://owasp.org/www-project-api-security/ * Mobile: https://owasp.org/www-project-mobile-top-10/ * Примеры IPC багов в Android: * Доступ к защищенным компонентам приложения (https://blog.oversecured.com/Android-Access-to-app-protected-components/) * Кража файлов и RCE в TikTok (https://blog.oversecured.com/Oversecured-detects-dangerous-vulnerabilities-in-the-TikTok-Android-app/) * Книги: * Android Hacker's Handbook (https://www.amazon.com/Android-Hackers-Handbook-Joshua-Drake/dp/111860864X) * Android Security Internals (https://nostarch.com/androidsecurity) * Чем проверить свои приложения: * OWASP Dependency Checker (https://owasp.org/www-project-dependency-check/) * MobSF. Сканер безопасности, который можно развернуть у себя в инфраструктуре (https://mobsf.github.io/docs/#/) * Плагин для анализатора FindBugs сконцентрированный на безопасности (https://find-sec-bugs.github.io/) Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon), звёздочками в iTunes (https://podcasts.apple.com/ru/podcast/software-development-podcast/id890468606?l=en) или своём подкаст-плеере, а так же ретвитом или постом! Заходи в телеграм-чат SDCast (https://t.me/SDCast), где можно обсудить выпуски, предложить гостей и высказать свои замечания и пожелания!
Встречайте 136-й выпуск подкаста, в котором у меня в гостях Иван Евтухович, сооснователь компании «Экспресс 42». Этот выпуск получился больше философским и без каких-то хардкорных технических подробностей, но от этого не менее интересным. Ваня рассказал про свой путь в IT, с чего он начинал, какой опыт получил и как эти технические знания помогают ему сейчас строить компанию и бизнес. Ваня рассказал про историю появления компании, с чего всё начиналось, как развивалось и что есть сейчас. Мы обсудили тему широкого кругозора и глубины знаний, влияние опыта на принимаемые решения, поговорили про найм, людей, компетенции. Подискутировали на тему open source: есть ли он в чистом виде, зачем open source компаниям, плавно скатились в обсуждение в целом влияния крупных корпораций на информационные технологии и технологий на нашу жизнь, вспомнили про code of conduct, переименовывание терминов и понятий и прочие штуки. Ссылки на ресурсы по темам выпуска: * Блог Ивана Евтуховича (https://evtuhovich.ru/) * Секта свидетелей Евтуховича (https://t.me/evtuhovich_sect). Телеграм-канал Вани про жизнь. * Лекция Джордана Питерсона про 12 правил жизни (https://www.youtube.com/watch?v=XvJBwbx5uk0) Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon), звёздочками в iTunes (https://podcasts.apple.com/ru/podcast/software-development-podcast/id890468606?l=en) или своём подкаст-плеере, а так же ретвитом или постом! Заходи в телеграм-чат SDCast (https://t.me/SDCast), где можно обсудить выпуски, предложить гостей и высказать свои замечания и пожелания!
Встречайте 135-й выпуск подкаста. У меня в гостях Андрей Листочкин, CTO в компании Viravix. Очень давно мы собирались пообщаться с Андреем, но свершилось это вот только сейчас. Так что тем для обсуждения накопилось порядочно и выпуск получился длинным, но от этого не менее интересным! Андрей рассказал про свой долгий и ветвистый путь в Айти: работу в компании Opera, IP-телефонию, разработку медицинского софта и заканчивая системами промышленного оборудования в пищевой промышленности. Мы поговорили про эволюцию веба, развитие браузеров и внедрение новых браузерных API, подискутировали о инструментах фронтенда, таких как сборщики, вспомнили jQuery и Firebug! Андрей рассказал про то, как он стал амбассадором Ember.js в русскоязычном сообществе. Мы подискутировали о фреймворках, платформах, их идеях и устаревании, vanilla js и легаси. Обсудили то, как изменились вопросы, задаваемые фронтенд-разработчикам на собеседованиях. Поговорили про команды, ресурсы, фуллстек разработчиков и аутсорс, решаемые задачи и используемые для их решения технологии, выбор стэка, платформ и всего остального. Андрей рассказал про свою роль СТО в компании, чем он занимается и какие решает задачи. Андрей, как активный член различных программных коммитетов конференций и сообществ рассказал и про эту сферу своей деятельности. Мы обсудили конференции, преподавание и менторство: зачем, для чего и ради каких целей ими занимаемся. Ссылки на ресурсы по темам выпуска: * Ранний фронтенд и веб: * Firebug (https://en.wikipedia.org/wiki/Firebug_(software)) * Joe Hewitt, автор Firebug и iUI (https://en.wikipedia.org/wiki/Joe_Hewitt_(programmer)) * Ролик про Opera Mini 5 & Mobile 10 (https://www.youtube.com/watch?v=wWHIGGjiamA), над которыми работал Андрей * Тот самый вопрос на SO про X-UA-Compatible (https://stackoverflow.com/questions/11095319/how-to-fix-document-mode-restart-in-ie-9/11096186#11096186) * KnockoutJS - первый популярный фреймворк с интерактивным туториалом (http://learn.knockoutjs.com/#/?tutorial=intro) * Туториал Джона Резига (автора jQuery) о том, как работает Function.prototype.bind (https://johnresig.com/apps/learn/) * Книги и доки: * Literate Programming (https://en.wikipedia.org/wiki/Literate_programming) * Annotated Version of the Original jQuery Release (https://johnresig.com/blog/annotated-version-of-the-original-jquery-release/) * Docco (http://ashkenas.com/docco/) is a quick-and-dirty documentation generator * Аннотированные исходники underscore.js (https://underscorejs.org/docs/underscore-esm.html) * Ответ Андрея про использование CoffeeScript на SO (https://softwareengineering.stackexchange.com/questions/72569/what-are-the-pros-and-cons-of-coffeescript/113208#113208) * Ember JS: * Broccoli.js (https://broccoli.build/) * The Ember CLI (https://cli.emberjs.com/release/) * Первый доклад Андрея про Ember с JavaScript Framework Day'14 (https://www.youtube.com/watch?v=cXb1aFczAbo) * Post-SPA фреймворки: * Hotwire (https://hotwired.dev/) * TwinSpark (https://kasta-ua.github.io/twinspark-js/) * Строчка кода, заработавшая компании миллион (https://www.freeswitch.org/confluence/display/FREESWITCH/mod_dptools%3A+deflect) * Сообщества и конференции: * https://fwdays.com/ * http://kharkivjs.org/ * http://kyivjs.org/ * https://kottans.org/ * Фреймворки и платформы: * https://nestjs.com/ * Про “Async iterators and generators” (https://jakearchibald.com/2017/async-iterators-and-generators/) от Джейка Арчибальда * https://rxjs.dev/ Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon), звёздочками в iTunes (https://podcasts.apple.com/ru/podcast/software-development-podcast/id890468606?l=en) или своём подкаст-плеере, а так же ретвитом или постом! Заходи в телеграм-чат SDCast (https://t.me/SDCast), где можно обсудить выпуски, предложить гостей и высказать свои замечания и пожелания!
Рад представить вам 134-й выпуск подкаста, в котором идёт речь про AlmaLinux. Наверняка многие из вас слышали про операционную систему CentOS, которая развивалась в основном силами компании RedHat. Но в конце 2020 года было объявлено о прекращении её развития в текущем виде. В результате на свет появились пара новых RedHat совместимых open source дистрибутивов: AlmaLinux и RockyLinux. В этом выпуске у меня в гостях как раз разработчики Almalinux: Андрей Лукошко, архитектор AlmaLinux и глава отдела релиз-инжиниринга Евгений Замрий. Мы обсудили историю закрытия CentOS, подискутировали о том, какие были предпосылки и причины у RedHat на то, чтобы пойти на такой шаг. Ребята рассказали свою историю: почему и зачем компания CloudLinux решила выпустить ещё один redhat-совместимый дистрибутив. Андрей рассказали про то, как устроен процесс сборки дистрибутива, какие есть направления работ, как устроен пайплайн сборки. Мы поговорили про сборку пакетов, проверку их совместимости, патчинг, пуши в апстрим каких-то необходимых изменений и другие технические подробности. Поговорили мы и про команду проекта и сообщество вокруг. Ребята поделились своим видением того, как выстроить прозрачную коммуникацию с сообществом, как планировать развитие проекта. Немного затронули и юридическую сторону: Женя рассказал про создание не коммерческой организации The AlmaLinux OS Foundation, её участниках, задачах и целях. Ссылки на ресурсы по темам выпуска: * Сайт дистрибутива (https://almalinux.org/): AlmaLinux. An Open Source and forever-free enterprise Linux distribution and community * Основное место общения по проекту: чат (https://chat.almalinux.org/). Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon), звёздочками в iTunes (https://podcasts.apple.com/ru/podcast/software-development-podcast/id890468606?l=en) или своём подкаст-плеере, а так же ретвитом или постом! Заходи в телеграм-чат SDCast (https://t.me/SDCast), где можно обсудить выпуски, предложить гостей и высказать свои замечания и пожелания!
Встречайте 131-й выпуск подкаста. У меня в гостях Евгений Сальников, тимлид в компании «Lamoda». В этом выпуске Женя рассказывает про свой довольно витиеватый путь в Айти. Мы обсуждаем различные аспекты разработки, начиная от простых задач, проявления инициативы и заканчивая архитектурой высоконагруженных систем и softskills. Мы поговорили так же и про микроклимат в компаниях, его важность и значение, а так же влияние на работу, производительность и вообще отношения в коллективе и компании в целом. Однажды Женя променял роль СТО на разработчика-тимлида. Мы поговорили о том, как это случилось и почему, обсудили, насколько опыт СТО помогает в принятии более прикладных программистских решений и повседневных задачах. Женя рассказал про свою универсальную команду, когда все участники коллектива пишут код на довольно разных технологиях и различных стеках. Мы обсудили плюсы и минусы этого подхода, в каких случаях это может быть выгодно, поговорили о том, как рядовые разработчики относятся к таким идеям. Ссылки на ресурсы по темам выпуска: * Заметка Жени на Хабре «Как работать в команде, которая пишет на 5 языках» (https://habr.com/ru/company/lamoda/blog/553178/) * Доклад Жени «Мы автоматизировали доставку как могли или Как жить с 5 языками в команде» (https://youtu.be/ZYMEb_30kuo?t=14868) с онлайн PHP-митапа Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon), звёздочками в iTunes (https://podcasts.apple.com/ru/podcast/software-development-podcast/id890468606?l=en) или своём подкаст-плеере, а так же ретвитом или постом! Заходи в телеграм-чат SDCast (https://t.me/SDCast), где можно обсудить выпуски, предложить гостей и высказать свои замечания и пожелания!
Как часто вам приходится иметь дело с API? Думаю, что почти каждый день: API сервиса, API браузера, API библиотеки или в конце концов API языка программирования. Как же спроектировать хорошее API, которое может расширяться и эволюционировать? Об этом мы говорим с Сергеем Константиновым, который долгое время занимался проектированием API Яндекс.Карт, да так, что даже написал книгу про API. Мы обсудили различные темы по API, включая такие как: * Подходы к разработке API * Описание бизнес-процессов * Проектирование API * Применение и разделение уровней абстракции * Эволюционирование API * Документирование API Некоторое время Сергей входил в состав рабочей группы W3C Technical Architecture Group (TAG) и мы конечно же поговорили про это. Сергей рассказал в целом про свой опыт участия в W3C, как там устроены процессы работы и принятия решений. Ссылки на ресурсы по темам выпуска: * The API Book (https://twirl.github.io/The-API-Book/docs/API.ru.html) * Заметка «Язык до Кембриджа доведёт, или Как я перестал волноваться и полюбил W3C» (https://habr.com/ru/company/yandex/blog/188520/) Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon), звёздочками в iTunes (https://podcasts.apple.com/ru/podcast/software-development-podcast/id890468606?l=en), а так же ретвитом или постом! Заходи в телеграм-чат SDCast (https://t.me/SDCast), где можно обсудить выпуски, предложить гостей и высказать свои замечания и пожелания!
Встречайте 131-й выпуск подкаста. У меня в гостях Евгений Антонов, тимлид в компании «Positive Technologies». С Женей мы знакомы давно, да и поговорить любим, так что выпуск получился довольно продолжительными. Но это не значит, что не интересным! Женя рассказал про свой путь в IT, от админства и галер до тимлидства в продуктовой разработке. Мы обсудили различные аспекты консалтинга, заказной и продуктовой разработки. Поговорили про процессы разработки, изолированность команд, взаимодействие с внутренними и внешними заказчиками, обсудили, как жить, когда команда небольшая, а заказчиков много, как приоретизировать задачи и планировать разработку в долгосрочной и краткосрочной перспективе. Подискутировали про подходы в выборе технологий и решений. Женя поделился своим мнением на этот счёт. Мы обсудили, насколько оправданно писать свой велосипед вместо выбора готового подходящего решения, но на не знакомом стеке. Женя так же рассказал про то, как они поменяли в команде и перешли с одного стека на другой. Не обошли мы стороной и вопросы документации, код-ревью и техдолга. Куда же без них! Отдельно поговорили про тимлидство, soft skills и сопутствующие темы. Женя рассказал про консалтинг в сфере карьерного роста в IT, мы обсудили типичные проблемы и вопросы, с которыми приходят и попробовали обозначить какие-то общие рекомендации для их решения. Ссылки на ресурсы по темам выпуска: * Заметка Жени про письменные стендапы (https://t.me/general_it_talks/32) * Моя заметка «Асинхронные стендапы» (https://blog.ksdaemon.ru/2021/01/async-standups/) * Заметка Жени «CV Driven Development» (https://t.me/general_it_talks/10) * Заметка Жени про то, как общаться с бизнесом и продавать техдолг и прочее (https://t.me/general_it_talks/43) * Заметка Жени про внедрение изменений (https://t.me/general_it_talks/63) * Те самые ИТ консультации (https://antonov-dev.ru/consulting) Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon), звёздочками в iTunes (https://podcasts.apple.com/ru/podcast/software-development-podcast/id890468606?l=en), а так же ретвитом или постом! Заходи в телеграм-чат SDCast (https://t.me/SDCast), где можно обсудить выпуски, предложить гостей и высказать свои замечания и пожелания!
Рад представить вам 130-й выпуск подкаста, в котором у меня в гостях Егор Болгов, технический руководитель одного из продуктовых направлений в Semrush. В этом выпуске мы говорим о распиле монолита в сервисы, процессах разработки, переиспользовании сервисов в разных продуктах, деплоях, мониторинге и многом другом. В начале Егор рассказал про монолит Semrush, каким он был, как стал разрастаться и какие появились трудности, сложности и проблемы в разработке и деплое. Затем рассказал как начался распил монолита на сервисы, мы обсудили разделение базы данных, выделение сервисов в рамках монолита и последующее выделение кода в отдельный сервис. Обсудили вопросы документирования кода сервисов, API и интерфейсов, подискутировали о стандартизации, используемых технологиях и подходах в больших компаниях, когда команд много, сервисов много и как переиспользовать наработки других команд и вообще делиться знаниями. Пообщались про деплой и мониторинг сервисов и монолита, Егор рассказал как деплоят в Semrush, коснулись темы отладки в сервисной архитектуре. Поговорили про техдолг, паттерны и абстракции. Когда и как бороться с техдолгом и как современные фреймворки и технологии влияют на качество кода. Подискутировали о подходах к выбору новых инструментов и технологий, Егор поделился своим взглядом на это. Ссылки на ресурсы по темам выпуска: * Выступление Алексея Кочетова про канареечные деплои (видео (https://www.youtube.com/watch?v=Gf6jxyB2ANo) и статья на Хабре (https://habr.com/ru/company/semrush/blog/505866/)) * PURR (https://github.com/semrush/purr) (PUppeteer RunneR) is a devops-friendly tool for browser testing and monitoring. * Web Perf SEMrush IT meetup #3 (https://www.youtube.com/watch?v=of-0MmwHzIo) Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon), звёздочками в iTunes (https://podcasts.apple.com/ru/podcast/software-development-podcast/id890468606?l=en), а так же ретвитом или постом! Заходи в телеграм-чат SDCast (https://t.me/SDCast), где можно обсудить выпуски, предложить гостей и высказать свои замечания и пожелания!
Встречайте 129-й выпуск подкаста. У меня в гостях Игорь Кузнецов, тимлид в компании «GOST GROUP». В этом выпуске мы говорим про консалтинг и продуктовую разработку, как давать первичную оценку проектам по трудозатратам и срокам. Обсуждаем повседневные задачи тимлида, выбор техонологий и стэка, собеседования и текучку кадров. Подискутировали на тему: когда и надо ли брать Open source решение, а не писать свой велосипед, даже если это решение на другом стеке. Игорь рассказал немного про проекты которыми занимается, один из которых — это мониторинг транспорта городских служб. Мы обсудили архитектуру и применяемые решения и используемые технологии. По традиции обсудили процессы разработки, а так же Игорь поделился интересными случаями из своего опыта. Ссылки на ресурсы по темам выпуска: * Блог Игоря (https://www.swe-notes.ru/) и канал в телеграме (http://t.me/swenotes) * Группа по платформе Odoo в телеграме (http://t.me/ru_odoo) Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon), звёздочками в iTunes (https://podcasts.apple.com/ru/podcast/software-development-podcast/id890468606?l=en), а так же ретвитом или постом! Заходи в телеграм-чат SDCast (https://t.me/SDCast), где можно обсудить выпуски, предложить гостей и высказать свои замечания и пожелания!
Встречайте 128-й выпуск подкаста, в котором у меня в гостях Виталий Виноградов продукт-менеджер b2b продуктов компании NtechLab. В этом выпуске мы говорим про то, кто такой продукт-менеджер, его роль и зона ответственности в жизненном цикле айтишных продуктов. В начале Виталий рассказал про своё понимание того, кто такой продукт-менеджер. Мы обсудили задачи и функции ПМа, его обязанности и ответственности. Виталий рассказал про оценку и проработку новых фич продукта, бизнес-планирование, а так же все этапы жизненного пути новой фичи от потребности до реализации. Поговорили мы и про то, как бизнес-функция транслируется в тех задание на разработку, обсудили то, какие навыками должен обладать ПМ, насколько важно и необходимо ПМу быть технически грамотным. Немного поговорили про различные методологии. Провели небольшую ретроспективу реализации продукта распознавания лиц, в разработке которого Виталий принимал участие как продукт-менеджер. В заключении Виталий немного рассказал про компанию NTechLab и их продукты, а так же про свой стартап Liveapp, которым Виталий с группой сотоварищей занимается в свободное время. Ссылки на ресурсы по темам выпуска: * Ivideon (https://ivideon.com/) * NTechLab (https://ntechlab.com/) * Liveapp (https://liveapp.site/) Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon), звёздочками в iTunes (https://podcasts.apple.com/ru/podcast/software-development-podcast/id890468606?l=en), а так же ретвитом или постом! Заходи в телеграм-чат SDCast (https://t.me/SDCast), где можно обсудить выпуски, предложить гостей и высказать свои замечания и пожелания!
Товарищи, в этот раз вас ждёт необычный выпуск подкаста! У меня в гостях автор и разработчик набора сетевых инструментов Intercepter-NG, так же известный как Ares. В этом выпуске Ares рассказывает историю создания Intercepter, мы обсуждаем его возможности и детали реализации, такие как, например, сетевой сканер, восстановление файлов из траффика, подмену DHCP и многое другое. Кстати, в этом году проекту исполняется не много не мало — 15 лет! Обсуждаем различные аспекты информационной безопасности в целом, в enterprise сегменте и малом бизнесе, где и для каких целей применяются такие инструменты как Intercepter-NG. Да и просто дискутируем про ИБ в целом, базовые знания, светлую и тёмную сторону хакерства. Ссылки на ресурсы по темам выпуска: * Сайт проекта Intercepter-NG (https://sniff.su/) * Блог Intercept the planet! (http://intercepter-ng.blogspot.com/) * Youtube канал (https://www.youtube.com/c/Intercepter) с видео про проект, интервью с хакерами, различные виды атак и многое другое. * Статья про ОС фингерпринтинг (https://habr.com/ru/post/497304/) * Twitter (https://twitter.com/IntercepterNG), Telegram канал (https://t.me/cepter) & Telegram чат (https://t.me/cepter_chat) Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon), звёздочками в iTunes (https://podcasts.apple.com/ru/podcast/software-development-podcast/id890468606?l=en), а так же ретвитом или постом! Заходи в телеграм-чат SDCast (https://t.me/SDCast), где можно обсудить выпуски, предложить гостей и высказать свои замечания и пожелания!
Рад представить вам 126-й выпуск подкаста, в котором мы говорим про Domain Driven Design (DDD) и unit-тестирование. У меня в гостях Владимир Хориков, автор книги про Unit-тестирование и блога Enterprise Craftmanship. Володя рассказал про своё знакомство с DDD, первые опыты внедрения, насколько не просто было внедрить идею DDD будучи не тимлидом, а просто программистом. Так же Володя рассказал как сейчас обычно происходит внедрение DDD, с чего начинается обучение команды. Мы обсудили как DDD подход ложится в ООП парадигму разработки, разобрали применение DDD в MVC/MVVM подходах к построению UI. Подискутировали о применении DDD в купе с CQRS и Event Sourcing. Второй большой темой обсуждения стало тестирование. Володя рассказал про unit и интеграционные тесты. Мы обсудили их место в пирамиде тестирования, соотношение количества тестов разных видов. Володя поделился своим мнением о том, что должны тестировать unit-тесты, как тестировать и какие у тестов есть метрики качества. Помимо этого Володя рассказал про написание книги: зачем он решил написать, сколько сил и времени у него на это ушло и какой получился результат. Ссылки на ресурсы по темам выпуска: * Статья в блоге «Types of CQRS» (https://enterprisecraftsmanship.com/posts/types-of-cqrs/) * Статья в блоге «Entity vs Value Object: the ultimate list of differences» (https://enterprisecraftsmanship.com/posts/entity-vs-value-object-the-ultimate-list-of-differences/) * Статья в блоге про закон Деметры и неизменяемость «Law of Demeter and immutability» (https://enterprisecraftsmanship.com/posts/law-of-demeter-and-immutability/) * Книга Володи: * На английском «Unit Testing Principles, Practices, and Patterns: Effective testing styles, patterns, and reliable automation for unit testing, mocking, and integration testing with examples in C#» (https://www.amazon.com/Unit-Testing-Principles-Practices-Patterns/dp/1617296279) * На русском «Принципы юнит-тестирования» (https://www.piter.com/product/printsipy-yunit-testirovaniya) Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon), звёздочками в iTunes (https://podcasts.apple.com/ru/podcast/software-development-podcast/id890468606?l=en), а так же ретвитом или постом! Заходи в телеграм-чат SDCast (https://t.me/SDCast), где можно обсудить выпуски, предложить гостей и высказать свои замечания и пожелания!
Встречайте 125-й выпуск подкаста, в котором у меня в гостях Антон Виноградов, руководитель фронтенд-разработки SberDevices (https://sberdevices.ru/). В этом выпуске мы говорим про интернет вещей, умные дома и устройства и голосовые ассистенты. В начале Антон рассказал про свой путь в мире Айти от фронтенда до умных устройств, рассказал про архитектуру фронтенда Яндекс поиска и внедрение там react. Мы обсудили подход к выбору технологий, эксперименты и причины такого перехода. Поговорили мы и про Яндекс.Станцию и умные дома в общем. Обсудили различные протоколы физические взаимодействия устройств, программные протоколы интеграции. Антон рассказал немного про устройство Яндекс.Станции. Мы поговорили про взаимодействие с системными компонентами из браузерного JavaScript окружения, обсудили какими навыками необходимо обладать фронтенд-разработчику встроенных программно-аппаратных решений. Следующей темой обсуждения стали голосовые помощники. Антон немного рассказал про Алису Яндекса и голосовых помощников семейства Салют от Сбера. Мы обсудили какие задачи могут решать голосовые ассистенты, как можно интегрировать их в свои приложения и в целом в другие внешние сервисы. Антон рассказал про сложности определения контекста и как эти проблемы решаются. В заключении выпуска мы немного подискутировали о том, куда движется индустрия в целом, какие задачи будут решаться в ближайшее время, обсудили вопросы контроля и безопасности использования умных устройств. Ссылки на ресурсы по темам выпуска: * Статья Сбера про русскоязычную модель GPT-3 Large с 760 миллионами параметров (https://habr.com/ru/company/sberbank/blog/524522/) Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon), звёздочками в iTunes (https://podcasts.apple.com/ru/podcast/software-development-podcast/id890468606?l=en), а так же ретвитом или постом! Заходи в телеграм-чат SDCast (https://t.me/SDCast), где можно обсудить выпуски, предложить гостей и высказать свои замечания и пожелания!
Товарищи! После затянувшегося перерыва встречайте 124 выпуск подкаста! На этот раз у меня в гостях Михаил Боднарчук, веб-разработчик из Киева, автор фреймворков для тестирования Codeception & CodeceptJS. В этом выпуске мы говорим, конечно же, про тестирование в целом, подходы, виды и конечно же инструменты, обсуждаем open source, и как можно на нём заработать. Миша рассказал про историю появления и развития фреймворка для тестирования на php Codeception, его устройство и подходы к применению. Мы обсудили подходы к тестированию и практики использования фреймворка, вспомнили прошлые и настоящие альтернативы. Так же Миша рассказал про ещё один фреймворк для тестирования, на этот раз для JavaScript CodeceptJS. Рассказал историю о том, как он начинал его писать, какие ставил цели и задачи. В этом контексте мы обсудили различные инструменты для End-to-End тестирования в браузерах, такие как Selenium, Puppeteer, Cypress и новоиспечённый Playwright. В дополнение к этому Миша рассказал интересную историю про контрибьюторов в проект из Индии. Миша уже много лет работает сам на себя, занимается консультированием по своим фреймворкам и пытается зарабатывать на open source. Мы поговорили и об этом: Миша рассказал, как всё начиналось у него, какие есть бизнес-модели для open source, донаты и поддержка. Так же Миша рассказал про проект, которым он занимается сейчас, это система управления тестами testomat.io (http://testomat.io/) Ссылки на ресурсы по темам выпуска: * Codeception (https://codeception.com/) is a modern full-stack testing framework for PHP * CodeceptJS (https://codecept.io/) ‐ supercharged End 2 End Testing * Testomat.io (http://testomat.io/). Test management system for automated tests * Статья Миши: “JavaScript: the Future of End to End Testing” (https://medium.com/@davert/javascript-the-future-of-end-to-end-testing-bfc00e23110b) * Доклад Jordi Boggiano "Behind the Scenes of Maintaining an Open Source Project" (https://www.youtube.com/watch?v=SKSYof_10vQ) Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon), звёздочками в iTunes (https://podcasts.apple.com/ru/podcast/software-development-podcast/id890468606?l=en), а так же ретвитом или постом! Заходи в телеграм-чат SDCast (https://t.me/SDCast), где можно обсудить выпуски, предложить гостей и высказать свои замечания и пожелания!
Встречайте 123-й выпуск подкаста, в котором у меня в гостях Иван Муратов, технический директор Первой Мониторинговой Компании в Краснодаре, активист Краснодарского ИТ сообщества и основатель бэкенд-митапа. В этом выпуске мы говорим о мониторинге подвижных объектов, то есть транспорта. Ваня рассказал про компанию и их систему мониторинга: как она устроена и работает, где и как хранится информация, немного коснулись вопроса потоков данных и их обработки. Поговорили про Internet of Things в общем и в контексте сбора данных с автотранспорта в частности. Обсудили способы хранения сообщений с датчиков в time-series базах данных и не только. Отдельно Ваня подробно рассказал про использование TimescaleDB и PostgreSQL, как они работают, как устроено хранение, партиции и запросы. Так же мы поговорили про конференции и сообщество. Ваня рассказал как зараждалось Краснодарское айти-сообщество, про конференции «Krasnodar Dev Days» (https://krd.dev/events), их принципы, подходы и организацию. Ссылки на ресурсы по темам выпуска: * Мероприятия IT-сообщества «Krasnodar Dev Days» (https://krd.dev/events) * Ютуб канал с записями со всех конференций Krasnodar Dev Days (https://www.youtube.com/c/krddevdays) * Телеграм группа Krd.dev (https://t.me/krddevdays) Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon), звёздочками в iTunes (https://podcasts.apple.com/ru/podcast/software-development-podcast/id890468606?l=en), а так же ретвитом или постом! Заходи в телеграм-чат SDCast (https://t.me/SDCast), где можно обсудить выпуски, предложить гостей и высказать свои замечания и пожелания!
После несколько затянувшегося перерыва, встречайте 122-й выпуск подкаста, посвящённый файловой системе ZFS. У меня в гостях Георгий Меликов, контрибьютор проектов OpenZFS и ZFS on Linux. В этом выпуске мы говорим о том, как устроена файловая система ZFS, в чём её особенности и отличия от других файловых систем, из каких компонентов она состоит и как работает. Георгий рассказал про архитектуру системы, рассказал про модули и их назначение, мы обсудили в целом подход Copy on write, иммьютабельность данных, снепшоты, различные кэши и методы оптимизаций, применяемые в ZFS. Поговорили про фрагментацию данных, шифрование и сжатие. Георгий рассказал про интересные новые фичи, которые появились в последних релизах или находятся в альфе и скоро попадут в релиз, например нативное шифрование или dRAID. Так же Георгий рассказал про историю проекта, а точнее целое семейство проектов, и то, как все они потихонечку собираются воедино. Не могли мы не поговорить про сравнение ZFS и железных контроллеров и поддержку ZFS в апстриме ядра Linux. Обсудили так же и open source составляющую проекта: какая команда, какие компании поддерживают проект, планы по развитию проекта. Ссылки на ресурсы по темам выпуска: * Проект openzfs на github (https://github.com/openzfs/) * Общая документация (https://github.com/openzfs/) * Newcomer Resources (https://openzfs.org/wiki/Newcomers) * Developer resources (https://openzfs.org/wiki/Developer_resources) Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon), звёздочками в iTunes (https://podcasts.apple.com/ru/podcast/software-development-podcast/id890468606?l=en), а так же ретвитом или постом! Заходи в телеграм-чат SDCast (https://t.me/SDCast), где можно обсудить выпуски, предложить гостей и высказать свои замечания и пожелания!
Товарищи, в этот раз вас ждёт необычный выпуск подкаста! Почему? — Этот выпуск был записан в прямом эфире с обсуждением вопросов зрителей, онлайн-голосованиями и другими активностями. Но не переживайте, весь контент доступен для восприятия в аудио-формате как и прежде! Итак, выпуск посвящён непростой и спорной теме код-ревью. В этом выпуске, помимо меня приняли участие: * Александр Макаров, лид проекта Yii Framework * Антон Морев, основатель и СТО Wormsoft * Сергей Жук, разработчик из SkyEng Вот далеко не полный перечень тем, которые мы обсудили: * Каким должно быть идеальное код-ревью? * Есть ли отличия в процессах код-ревью для крупных компаний, заказной разработки и open source проектов? * Размеры одного пулл-реквеста: что делать с огромными пул-реквестами? * Сколько времени должно уходить на ревью одного запроса? Когда и как делать код-ревью? * Как экономить время на код-ревью? * Инструменты, облегчающие и помогающие код-ревью * Человеческий фактор в код-ревью: как не убить критикой все старания? В процессе беседы мы много вспоминали и приводили примеры из собственного опыта, команд и проектов. Поэтому попытались не просто порассуждать о идеальном ревью, а привести примеры, подходы и практики, работающие в конкретных ситуациях и командах. Так же за время беседы мы запустили несколько голосований по тематике код-ревью, а в конце дискуссии подвели итоги. Ссылки на ресурсы по темам выпуска: * Доклада Сереги Жука: «Code review: быстро и эффективно» (https://www.youtube.com/watch?v=se3F83O0ZiY&feature=youtu.be&t=349) и его текстовая версия (https://habr.com/ru/company/skyeng/blog/443402/) * Инструменты: * _https://www.sqlstyle.guide_ (https://www.sqlstyle.guide/) - Руководство по стилю SQL * _https://prettier.io/_ (https://prettier.io/). An opinionated code formatter * *conventional: *comments (https://conventionalcomments.org/). Подход к комментированию пулл-реквестов от Пола Слоутера из GitLab * Статья «Prettier в крупных проектах: тратим 20 минут на настройку, забываем о форматировании навсегда» (https://habr.com/ru/company/skyeng/blog/484992/) * Гайдлайны код-ревью проекта Yii (https://github.com/yiisoft/docs/blob/master/013-code-review.md) * Анонс нашего эфира на хабре (https://habr.com/ru/company/skyeng/blog/508148/) Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon), звёздочками в iTunes (https://podcasts.apple.com/ru/podcast/software-development-podcast/id890468606?l=en), а так же ретвитом или постом! Заходи в телеграм-чат SDCast (https://t.me/SDCast), где можно обсудить выпуски, предложить гостей и высказать свои замечания и пожелания!
Встречайте 120-й выпуск подкаста с ребятами из компании Lamoda. У меня в гостях Павел Савельев, руководитель отдела автоматизации бизнес-процессов и Павел Агалецкий, системный архитектор. В этом выпуске мы говорим про архитектуру больших систем, межсервисное взаимодействие, API, процессы разработки, коммуникации и open source. В начале ребята рассказали про архитектуру подсистемы доставки Lamoda. Как она устроена, на чём написана, какие есть ключевые сервисы и как работает бизнес-логика. Затем мы обсудили межсервисное взаимодействие, потоки данных, подходы к разработки новых сервисов. Подискутировали на тему API: ребята рассказали как устроено API у них, почему они выбрали JSON-RPC, обсудили консистентность и докумендацию API. Поговорили про людей, команды и технологии. Ребята рассказали про размер команды, как устроен процесс разработки, как выбираются технологии, вспомнили про тех радар. Обсудили, как внедряется новый разработчик в команду, вспомнили про performance review, личностный и профессиональный рост. Ребята поделились своим опытом переезда в облака и контейнеры, рассказали как они прошли этот путь и с чем столкнулись в процессе. Так же ребята рассказали про то, зачем они выкладывают какие-то свои библиотеки и компоненты в open source. Что это даёт компании и конкретным разработчикам. В завершении выпуска обсудили насущную тему удалённой работы. Ребята поделились своими личными впечатлениями от удалёнки и рассказали как выстроен процесс у них в компании. Ссылки на ресурсы по темам выпуска: * Про архитектуру доставки: * Деплой приложений в VM, Nomad и Kubernetes (https://habr.com/ru/company/lamoda/blog/451644/) * Насколько легко доставить заказ, зная адрес клиента (не очень) (https://habr.com/ru/company/lamoda/blog/444848/) * Про сервисы, API, стандарты, REST и не только: * Унифицируй это: как Lamoda делает единообразными свои Go сервисы (https://habr.com/ru/company/lamoda/blog/495344/) * Опыт разработки сервиса Refund Tool с асинхронным API на Kafka (https://habr.com/ru/company/oleg-bunin/blog/445424/) * PHP-библиотеки для e-commerce: работа с АТОЛ и Payture, парсинг кодов GS1 и другие задачи (https://habr.com/ru/company/lamoda/blog/466039/) * Про процессы и команды: * Доклад Александра Афенова «Сверстать всех наверх: онбординг новых сотрудников» (https://www.youtube.com/watch?v=3Fw-3Z0KbeY&list=PLl9pILEeZ62KgcgOEz67qJTidE-84xdNt) * Доклад Александра Афенова «Техническая ипотека: что и кому должен тимлид» (https://www.youtube.com/watch?v=D5euegEMjVc&list=PLl9pILEeZ62KgcgOEz67qJTidE-84xdNt&index=7) * Доклад Евгении Голевой «Как организовывать Knowledge Sharing внутрь и наружу» (https://www.youtube.com/watch?v=eYc3MailO1I&list=PLl9pILEeZ62KgcgOEz67qJTidE-84xdNt&index=6) * Доклад Александра Афенова «Трудно быть Колей: теория и практика knowledge sharing в Lamoda» (https://www.youtube.com/watch?v=shQBCFESRmg&list=PLl9pILEeZ62KgcgOEz67qJTidE-84xdNt&index=4) * Open source репозитории Lamoda на GitHub (https://github.com/lamoda) Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon), звёздочками в iTunes (https://podcasts.apple.com/ru/podcast/software-development-podcast/id890468606?l=en), а так же ретвитом или постом! Заходи в телеграм-чат SDCast (https://t.me/SDCast), где можно обсудить выпуски, предложить гостей и высказать свои замечания и пожелания!
Продолжаем серию выпусков про IDE. На этот раз у меня в гостях Андрей Старовойт, разработчик из команды WebStorm в JetBrains. В этом выпуске мы сконцентрировались на вопросах поддержки в IDE новых фич языка JavaScript, поддержки TypeScript, наиболее популярных фреймворков и различных сторонних инструментов. Андрей рассказал про особенности интеграции TypeScript, поддержку новых типов, взаимодействие с tsc и как сделана поддержка различных версий TypeScript. Мы обсудили как решается вопрос необходимости поддержки новых фич языка JS или глубокая поддержка конкретного фреймворка или технологии, и даже вспомнили про meteor.js! Андрей рассказал про команду разработки, используемые технологии, принцип выбора языка для реализации новых фич а так же про то, откуда брать компетенцию в различных веб-фреймворках, если каждый день пишешь на Java/Kotlin. В завершении выпуска подискутировали о веб направлении в целом и экосистеме JS в частности, а так же Андрей рассказал про текущие задачи и планы на ближайшее будущее WebStorm. Ссылки на ресурсы по темам выпуска: * Доклад Андрея «Эволюция TypeScript: язык и IDE» (https://www.youtube.com/watch?v=qddYQL5-rZY) * Доклад Андрея с разбором как работают литеральные типы в TypeScript и зачем они нужны (https://www.youtube.com/watch?v=9ik75yvo2BA) * 42 WebStorm Tips and Tricks (https://www.youtube.com/watch?v=x8y_6Gg28GI) * Twitter WebStormIDE (https://twitter.com/WebStormIDE) Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon), звёздочками в iTunes (https://podcasts.apple.com/ru/podcast/software-development-podcast/id890468606?l=en), а так же ретвитом или постом! Заходи в телеграм-чат SDCast (https://t.me/SDCast), где можно обсудить выпуски, предложить гостей и высказать свои замечания и пожелания!
Что-то давно не было у меня выпусков про настоящий Open Source, linux, BSD. Восполняем этот пробел! У меня в гостях Дмитрий Маракасов, разработчик свободного ПО, автор проекта repology (https://repology.org/). Repology занимается агрегацией информации о пакетах из максимального числа репозиториев и формированием полной картины о поддержке в дистрибутивах по каждому свободному проекту с целью упрощения работы и улучшения взаимодействия мейнтейнеров пакетов как между собой, так и с авторами ПО - в частности, проект помогает быстрее обнаруживать выпуски новых версий ПО, следить за актуальностью пакетов и наличием уязвимостей, унифицировать схемы именования и версионирования, поддерживать метаинформацию в актуальном состоянии, делиться патчами и решениями проблем и улучшать переносимость ПО. В этом выпуске мы говорим с Димой про Open Source, пакетные менеджеры и репозитории для linux и BSD систем, FreeBSD, разработке и конечно же проекте Repology. В начале Дима рассказал как возникла идея сделать этот проект, как давно уже он им занимается. Мы обсудили архитектуру проекта, его составные компоненты, на чём они написаны и как работают. Дима рассказал про некоторые интересные сложности на пути написания проекта, например, про сложность резолвинга имён пакетов и тонкости версионирования пакетов в различных системах. Мы обсудили, какой функционал есть в Repology, какие данные он предоставляет, какую статистику и отчёты можно увидеть, что есть в API. Так же Дима поделился текущей статистикой по проекту. Поговорили мы и про open source составляющую проекта: Дима рассказал про пользователей проекта, есть ли сообщество вокруг проекта, предложения идей и багфиксы. Так же мы обсудили тему самодостаточных пакетов (flatpak и ему подобные), немного подискутировали про языковые пакетные менеджеры, Дима рассказал про текущее положение дел с автоматическим тестированием портов FreeBSD и детерминированные сборки. Ссылки на ресурсы по темам выпуска: * Проект Repology (https://repology.org/) и его код на GitHub (https://github.com/Repology) * Stream JSON parser for Python (https://github.com/AMDmi3/jsonslicer), упомянавшийся в подкасте * libversion. (https://github.com/repology/libversion) Библиотека для сравнения версий пакетов * Похожие проекты: * Linux repositories inspector (https://reposcope.com/) * release-monitoring.org (https://release-monitoring.org/) * pkgs.org (https://pkgs.org/) * rpm.pbone.net (https://rpm.pbone.net/) * rpmfind.net (http://rpmfind.net/) * Статья: «Developers shouldn't distribute their own software» (https://drewdevault.com/2019/12/09/Developers-shouldnt-distribute.html) * Итоги полугода работы (https://www.opennet.ru/opennews/art.shtml?num=52977) проекта Repology (по состоянию на май 2020 года) Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon), звёздочками в iTunes (https://podcasts.apple.com/ru/podcast/software-development-podcast/id890468606?l=en), а так же ретвитом или постом! Заходи в телеграм-чат SDCast (https://t.me/SDCast), где можно обсудить выпуски, предложить гостей и высказать свои замечания и пожелания!
Рад представить вашему вниманию 117-й выпуск SDCast’а, посвящённый вопросам проектирования и разработки UI/UX программных продуктов. У меня в гостях Денис Падрухин, директор компании разработки INEDI. В этом выпуске мы говорим про разработку интерфейсов приложений и интеграцию этого этапа в общих жизненный цикл разработки ПО. Вначале мы обсудили, как изменились технологии в разработке UI/UX за последние годы. Затем Денис рассказал про процесс интеграции дизайна в проект: какие есть сложности и технические особенности, как подружить дизайнеров, верстальщиков и программистов, которые норовят скопипастить стили и подправить, как им нравится. Так же Денис вспомнил интересные случаи из жизни про интеграции дизайна в различных встраиваемых системах. Мы обсудили, как можно разрабатывать интерфейсы с прицелом на дальнейшую расширяемость и развитие проекта, есть ли какие-то общие правила и приёмы, которые помогают не наступить на грабли в дальнейшем. Немного подискутировали на тему использования так называемого фирменного стиля, который обычно относится к типографской продукции в дизайне интерфейсов ПО. Денис поделился своими мыслями о том, что же в интерфейсе является самым важным: визуальная составляющая, красивые анимации или же удобство ввода данных и эффективность работы пользователей. В заключении выпуска подискутировали о том, куда движется индустрия в целом, какие есть интересные новшества и что нас может ждать в будущем. Ссылки на ресурсы по темам выпуска: * Статья Дениса «Дизайн интерфейсов встраиваемых систем» (https://habr.com/ru/post/448670/) * Заметка «Умный дом. UI дизайн, история разработки» (https://inediapps.com/blog/smarthome.html) Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon), звёздочками в iTunes (https://podcasts.apple.com/ru/podcast/software-development-podcast/id890468606?l=en), а так же ретвитом или постом! Заходи в телеграм-чат SDCast (https://t.me/SDCast), где можно обсудить выпуски, предложить гостей и высказать свои замечания и пожелания!
Встречайте 116-й выпуск подкаста, на этот раз посвящённый аспектам безопасности мобильных платформ и разработке решений по обеспечению безопасности мобильных устройств. У меня в гостях Виктор Яблоков, руководитель мобильной разработки «Лаборатории Касперского». В этом выпуске мы говорим о том, как развивались мобильные технологии от первых смартфонов на symbian до наших дней, какие были проблемы безопасности в мобильной сфере тогда и что изменилось сейчас. Виктор рассказывает про то, как работают различные виды вредоносов и как от них защищаться. Так же Виктор рассказал про то, как устроено ядро безопасности и SDK для мобильных приложений, которое они разрабатывают, какие там используются технологии, фреймворки и языки программирования. Поговорили мы и о вендорских прошивках на базе Android, какие это привносит сложности в разработку, чем помогает Google Compatibility Suite и как устроено тестирование в целом. Так же Виктор рассказал про процессы разработки в своём отделе, команды, разработчиков, мотивацию и возможность ротации. Мы обсудили подходы к экспериментам с функциями и UI/UX приложений и A/B тестирование, Виктор рассказал как и на ком они проводят свои эксперименты. В заключении выпуска подискутировали о том, куда движется индустрия мобильной разработки в целом. Ссылки на ресурсы по темам выпуска: * Мобильная вирусология за 2019 год (https://securelist.ru/mobile-malware-evolution-2019/95602/) * Подборка статей по мобильным угрозам (https://securelist.ru/all/?category=717) Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon), звёздочками в iTunes (https://podcasts.apple.com/ru/podcast/software-development-podcast/id890468606?l=en), а так же ретвитом или постом!
Рад представить 115-й выпуск подкаста, речь в котором идёт про Bitcoin. Волна хайпа биткоина и блокчейн технологий немного спала, но тем не менее капитализация биткоина по прежнему превышает 130 млд долларов, а это что-то значит. У меня в гостях Сергей Тихомиров, блокчейн исследователь, аспирант Университета Люксембурга и автор подкаста Базовый блок. В этом выпуске мы обсуждаем различные социальные, финансовые и прочие аспекты биткоина, конечно же не обойдя стороной и технические вопросы реализации, новые идеи и криптографические механизмы. В начале Сергей вкратце рассказал про биткоин, криптовалюты и блокчейн в целом, что это такое и как работает. Мы разобрали как устроен процесс обмена биткоинами между двумя сторонами в контексте вопросов безопасности, анонимности и приватности. Сергей рассказал про различные криптографические механизмы защиты, применяемые в биткоин сейчас, а так же какие есть новые идеи, алгоритмы и подходы, улучшающие приватность сделок. Обсудили Эфир, aka Ethereum и его смарт-контракты, какие-то новые веяния и идеи, построенные на базе эфира и смарт-контрактов. В заключении немного порассуждали о будущем криптовалют, тенденциях и возможных направлениях развития. Ссылки на ресурсы по темам выпуска: * Сайт Сергея с его работами и статьями (https://s-tikhomirov.github.io/about/) * «Базовый блок» (https://basicblockradio.com/) — русскоязычный подкаст о блокчейн-технологиях * Рыночные капитализации криптовалют (https://coinmarketcap.com/) * Официальный сайт Bitcoin (https://bitcoin.org/) * Официальный сайт Ethereum (https://ethereum.org/) * Технический Q&A по Bitcoin (https://bitcoin.stackexchange.com/) * Вводная статья «What Is Bitcoin?» (https://bitcoinmagazine.com/guides/what-bitcoin) * Сайт главного блокчейн-просветителя Andreas M. Antonopoulos (https://aantonop.com/) * Обзорная статья «Research Perspectives and Challenges for Bitcoin and Cryptocurrencies» (http://wws.princeton.edu/system/files/research/documents/Felten_SoK.pdf) (2015 год) * Видео курс и учебник «Bitcoin and Cryptocurrency Technologies» (https://bitcoinbook.cs.princeton.edu/) * Статья «Understanding The Lightning Network» (https://bitcoinmagazine.com/articles/understanding-the-lightning-network-part-building-a-bidirectional-payment-channel-1464710791) * Обзорная статья «Layer-Two Blockchain Protocols» (https://eprint.iacr.org/2019/360) * Zcash is a privacy-protecting, digital currency built on strong science (https://z.cash/) * MONERO. A Reasonably Private Digital Currency (https://www.getmonero.org/) * A list of all podcasts related to Bitcoin / Ethereum / blockchain / cryptocurrency (https://github.com/s-tikhomirov/blockchain-podcasts). Невероятно длинный список подкастов про блокчейн и криптовалюты, который поддерживает Сергей Понравился выпуск? — Расскажи друзьям, поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon), звёздочками в iTunes (https://podcasts.apple.com/ru/podcast/software-development-podcast/id890468606?l=en), а так же ретвитом или постом!
Встречайте 114-й выпуск подкаста! У меня в гостях Александр Кукушкин, database инженер в Zalando. Хотя, наверное, многие знают его как разработчика Patroni: A Template for PostgreSQL HA with ZooKeeper, etcd or Consul. Так что речь в этом выпуске пойдёт про PostgreSQL, кластеры, Patroni, облака, AWS, Kubernetes и даже про базы данных PostgreSQL в K8S :) В начале выпуска Саша рассказал про переезд в Германию, насколько это было сложно и как прошло. Дальше Саша рассказал про компанию в целом, как давно он там работает и чем занимается. Мы обсудили как устроена инфраструктура в компании в части баз данных, какие есть кластеры, их примерное количество и размеры. Саша рассказал про репликацию и резервирование данных внутри и между датацентрами. Обсудили переезд сервисов и баз данных в облака: Саша рассказал как они переводили серверы баз данных в AWS, какие были потребности в отказоустойчивости и чем эти потребности закрывались. Именно тогда на свет появился Patroni. Саша рассказал про устройство Patroni, как он работает и что умеет. Рассказал про его развитие, добавление новых фич, таких как управление конфигурацией PostgreSQL сервера, синхронизация конфигов. Рассказал про различные варианты использования DCS (distributed configuration store) и как он адаптировал Patroni для работы в кластере Kubernetes с минимальными накладными расходами. Не могли мы пройти мимо темы облаков, контейнеризации и диспетчеризации контейнеров в целом. Так что подискутировали о том, какие выгоды даёт K8S и какие сложности приносит в разработку и сопровождение. Саша рассказал несколько интересных кейсов из опыта использования K8S в Zalando. Ссылки на ресурсы по темам выпуска: * Patroni: A Template for PostgreSQL HA with ZooKeeper, etcd or Consul (https://github.com/zalando/patroni) * Блог Афира про тестирование распределённых систем (https://aphyr.com/tags/Distributed-Systems) * Kubernetes Failure Stories (https://github.com/hjacobs/kubernetes-failure-stories) * Kubernetes Janitor. Clean up (delete) Kubernetes resources after a configured TTL (https://github.com/hjacobs/kube-janitor) Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon), звёздочками в iTunes (https://podcasts.apple.com/ru/podcast/software-development-podcast/id890468606?l=en), а так же ретвитом, постом и просто рассказом друзьям!
Встречайте 113-й выпуск подкаста, в котором у меня в гостях Александр Сербул, руководитель направления контроля качества интеграций и внедрений в компании 1С-Битрикс, а так же технологический евангелист. В этом выпуске мы говорим про архитектуру, языки программирования, machine learning, нейросети, облака и многое другое. И нет, не думайте, что этот выпуск только про PHP и 1C-Битрикс! Вначале Саша рассказал про свой довольно насыщенный и тернистый путь в IT, с чем сталкивался, какие задачи приходилось решать и какие роли играть. Саша поделился теми книгами, которые произвели на него сильное впечатление сыграли не последнюю роль в его профессиональных навыках. Саша рассказал про общую архитектуру системы, её компоненты, сервисы, используемые языки и технологии. Отдельно мы обсудили тему облаков, облачных решений, AWS в частности, его плюсы и минусы и возможные альтернативы. Так же Саша рассказал про Rust, чем он так хорош, где нашлось ему место и какую выгоду это принесло. Обсудили мы и тему строгой типизации в различных интерпретируемых языках, хайп вокруг неё и немного подискутировали о том, когда она не очень нужна, а когда без неё уже не обойтись. Большой темой беседы стало машинное обучение. Саша рассказал про то, где у себя в системе они применяют машинное обучение, какие решают задачи с её помощью. Рассказал про используемые алгоритмы, фреймворки, языки и технологии. Не обошли мы стороной и вопрос первого языка программирования. Саша поделился своим мнением на этот счёт. Ссылки на ресурсы по темам выпуска: * Фильмы: * Одержимость (Whiplash) (https://www.kinopoisk.ru/film/725190/) * Общество мертвых поэтов (Dead Poets Society) (https://www.kinopoisk.ru/film/4996/) * Книги: * Архитектура компьютера (https://www.ozon.ru/context/detail/id/20032936/), Таненбаум Э., Остин Т. * Философия Java (https://www.ozon.ru/context/detail/id/4073388/), Эккель Б. * Java. Эффективное программирование (https://www.litres.ru/dzhoshua-bloh/javatm-effektivnoe-programmirovanie-48411247/), Блох Джошуа * Advanced Programming in the UNIX Environment (https://www.amazon.com/Advanced-Programming-UNIX-Environment-3rd/dp/0321637739), Richard Stevens * Deep Learning (http://www.deeplearningbook.org/), Ian Goodfellow and Yoshua Bengio and Aaron Courville * PyTorch (https://pytorch.org/). An open source machine learning framework that accelerates the path from research prototyping to production deployment. * LightFM (http://lyst.github.io/lightfm/docs/home.html) is a Python implementation of a number of popular recommendation algorithms for both implicit and explicit feedback. * Статья «Towards optimal personalization: synthesisizing machine learning and operations research» (https://www.ethanrosenthal.com/2016/08/30/towards-optimal-personalization/) * Paper «Factorization Machines» (pdf) Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon), звёздочками в iTunes (https://podcasts.apple.com/ru/podcast/software-development-podcast/id890468606?l=en), а так же ретвитом, постом и просто рассказом друзьям!
Рад представить вашему вниманию 112-й выпуск SDCast’а посвящённый удалённой работе и распределённым командам разработки. На этот раз у нас собралась большая компания участников, а именно: * Всеволод Поляков, консультант по DevOps, основатель сообщества ukrops club (https://ukrops.club/) * Светлана Божко, руководитель отдела в Cisco, ведущая подкаста devzen (https://devzen.ru/) * Павел АргентОв, тимлид в компании Evrone * Никита Борзых из компании Express 42 Вначале мы обсудили, какие бывают типы удалёнки и чем они отличаются, а дальше углубились в различные аспекты, вопросы и сложности работы в удалённо-распределённых командах. Вот лишь часть тем, которые были затронуты в процессе обсуждения: * Типы личности. Кому подходит удалёнка, а кому нет? Как понять, что сотруднику подойдет ремоут? * Процесс ввода нового сотрудника в команду aka onboarding * Процесс выхода сотрудника из проекта/команды aka offboarding * Вопросы доверия и делегирования * Проблемы общения, обратная связь, синхронная и асинхронная коммуникация * Токсичность в общении * Вопросы найма удалённых сотрудников * KnowledgeSharing и передача дел, текущих задач между сменами в командах с сильным разбросом по часовым поясам * Синхронизация инженерного опыта и midset в распределенной команде * Remote time tracking и разные подходы к этому в компаниях * Нужно ли брать больничные и вообще, как болеть на удалёнке Поскольку все участники дискуссии имеют опыт работы в распределённых командах, нам удалось собрать и обсудить различные мнения по вопросам, поделиться работающими подходами и приёмами решения некоторых проблем. Надеюсь, что все слушатели узнаю и для себя что-то новое. Ссылки на ресурсы по темам выпуска: * Книга «Пиши, сокращай» (https://www.litres.ru/avtor/pishi-sokraschay-kak-sozdavat-silnye-teksty-21112011/), Максим Ильяхов, Людмила Сарычева. * Книга «Remote. Офис не обязателен» (https://www.mann-ivanov-ferber.ru/books/paperbook/remote-office-not-required/), Джейсон Фрайд и Дэвид Хайнемайер Хенссон * Книга «The Checklist Manifesto: How to Get Things Right» (https://www.amazon.co.uk/Checklist-Manifesto-Things-Right-Gawande/dp/1846683149), Atul Gawande * Статья «Remote Working» (https://www.integralist.co.uk/posts/remote-working/) от Mark McDonnell * Статья «On Messing Up Your Remote Team—And Then Getting It Right» (https://angel.co/blog/on-messing-up-your-remote-team-and-then-getting-it-right) * Статья «A Distributed Meeting Primer» (https://randsinrepose.com/archives/a-distributed-meeting-primer/) Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon), звёздочками в iTunes (https://podcasts.apple.com/ru/podcast/software-development-podcast/id890468606?l=en), а так же ретвитом, постом и просто рассказом друзьям!
Встречайте 111-й выпуск подкаста, в котором у меня в гостях Сергей Жук, разработчик из Skyeng. В этом выпуске мы говорим про удалённую работу, публичную активность разработчиков и асинхронный PHP. Сергей живёт в Брянске, не самом айтишном городе. Мы поговорили про саморазвитие, опыт и получение знаний. Сергей рассказал про поиск удалённой работы, как начать вести свой технический блог, делать скринкасты и что это даёт. Так же Сергей рассказал про свою удалённую команду в Skyeng, как у них построены рабочие процессы. Мы обсудили важность код-ревью, документирования кода, асинхронность коммуникаций и другие важные аспекты разработки. В какой-то момент Сергей увлёкся асинхронным PHP настолько, что он рассказывает про него на различных митапах и конференциях, записывает подкасты и даже написал несколько книг про ReactPHP! Мы обсудили для каких задач стоит применять асинхронный PHP, какие проблемы он может помочь решить и как внедрить его в уже существующий проект. Ссылки на ресурсы по темам выпуска: * Книги Сергея про ReactPHP, Event-driven PHP и другие (https://leanpub.com/u/seregazhuk) * Канал Сергея со скринкастами про ReactPHP на Youtube (https://www.youtube.com/channel/UC3EThWvNp4EabJD7PyCOzGw/) * Блог (https://sergeyzhuk.me/) * Статья на английском про жизненный путь Сергея в маленьком провинциальном городе (https://dev.to/yanchauskayte2/how-to-grow-as-a-developer-if-you-live-in-a-small-town-16l1) * Статья Сергея “Как разработчику развиваться в небольшом и не самом айтишном городе” на Хабре (https://habr.com/ru/company/skyeng/blog/476480/)
Рад представить вам 110-й выпуск SDCast’а. У меня в гостях Анна Мелехова, архитектор платформы в компании Acronis. В этом выпуске мы говорим про архитектуру систем, API, образование и знания. В начале мы обсудили какие есть сложности в разработке архитектуры по сравнению с написанием кода, как вообще планировать и прорабатывать архитектуру систем, можно ли на ранних этапах построения архитектуры минимизировать затраты на поддержку legacy с течением времени. Одной из главных тем нашей беседы было API. В апреле 2019 года Acronis открыл сторонним разработчикам доступ к API и примерам исходных кодов своих продуктов, запустив платформу Acronis Cyber Platform. Предполагается, что используя возможности платформы, разработчики смогут создавать новые источники данных, хранилища данных и функции управления, а также интегрировать свои приложения с решениями Acronis для киберзащиты. Кроме того, они смогут интегрировать технологии Acronis в свои приложения, системы и облачные торговые площадки. Поэтому именно на Анну и ее коллег упала задача проектирования API. Мы поговорили о том, как унифицировать API, когда в его разработке участвует несколько команд. Аня рассказала про этапы построения API и различные инструменты, которые помогают разрабатывать и сопровождать API в дальнейшем. Аня рассказала про API Styleguide который они разработали в Acronis, что он содержит и как он помогает разработчикам избежать типичных ошибок и создавать консистентные API. Подискутировали мы и про знания и образование. Аня преподаёт на ФизТехе, у неё есть несколько авторских курсов. Мы обсудили необходимость базовых знаний для разработчиков, чего не хватает и стоило бы поменять в нашей системе образования и откуда вообще черпать свои знания в процессе работы. В заключение выпуска пофилософствовали на тему того, как разработчику вырасти в архитектора и что для этого нужно делать. Ссылки на ресурсы по темам выпуска: * Курсы Carnegie Mellon University по архитектуре ПО (https://www.sei.cmu.edu/research-capabilities/all-work/display.cfm?customel_datapageid_4050=21328) * Книга “Software Architecture in Practice” (https://www.amazon.com/Software-Architecture-Practice-3rd-Engineering/dp/0321815734) * Видео доклада Анны Мелеховой и Владимира Лапатина с Highload++ ’19 (https://www.youtube.com/watch?v=ik9dL9p9wpI&feature=youtu.be)“Заключая контракт: как осуществить хороший API для (микро)сервиса” (http://www.highload.ru/moscow/2019/abstracts/5234) Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon) а так же ретвитом, постом и просто рассказом друзьям!
Рад представить вашему вниманию 109-й выпуск SDCast’а с Антоном Титовым, техническим директором и основателем компании SpiralScout. В этом выпуске мы снова говорим о процессах разработки, но не только, а так же обсуждаем RoadRunner, высокопроизводительный сервер приложений PHP, написанный на Go, другие open source проекты компании, soft skills и многое другое. В начале Антон рассказал про компанию, как она зарождалась, развивалась, какие были процессы и организация в компании в начале и как это видоизменилось к настоящему времени. Мы поговорили про удалённую работу и работу в офисе, обсудили вопросы мотивации сотрудников. Антон рассказал про внедрение в компании четырёхдневной рабочей недели, о том как этот эксперимент доказал свою полезность и закрепился на постоянной основе. Одной из главных тем нашей беседы был конечно же проект RoadRunner. Это сервер приложений, написанный на Golang. Антон является автором и разработчиком RoadRunner. Он рассказал про проблемы php-fpm, и почему решил написать новый сервер, почему был выбран go для реализации, какова архитектура проекта и как взаимодействуют между собой go и php. Так же мы обсудили ещё один проект Антона Cycle DataMapper ORM: зачем нужен ещё один ORM для PHP, как Cycle ORM устроен внутри и какие у него особенности. Поговорили мы и в целом про open source, публикацию проектов, коммьюнити и обратную связ от пользователей. Антон, являясь техническим директором компании, умудряется находить время на программирование и оставаться техническим экспертом в используемых технологиях. Я попросил его рассказать, как ему удаётся совмещать различные роли и главное, как распоряжаться своим временем, чтобы его хватало на все задачи. Так же мы поговорили про софт скилы, насколько они важны для различных ролей (разработчики, тимлиды, СТО) и как эти софт скилы прокачивать. Ссылки на ресурсы по темам выпуска: * RoadRunner (https://roadrunner.dev/). А high-performance PHP application server, load-balancer, and process manager written in Golang * Cycle ORM (https://github.com/cycle/orm). PHP DataMapper ORM and Data Modelling Engine * Доклад Антона с конференции PHP Russia ’19 “Разработка гибридных PHP/Go-приложений с использованием RoadRunner” (Видео (https://www.youtube.com/watch?v=RUm94xCaXMo), расшифровка на хабре (https://habr.com/ru/company/oleg-bunin/blog/461827/)) * Статья «RoadRunner: PHP не создан, чтобы умирать, или Golang спешит на помощь» (https://habr.com/ru/company/badoo/blog/434272/) * Статья «Сравниваем PHP FPM, PHP PPM, Nginx Unit, React PHP и RoadRunner» (https://habr.com/ru/post/431818/) Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon) а так же ретвитом, постом и просто рассказом друзьям!
После долгого перерыва встречайте 108-й выпуск подкаста! У меня в гостях Александр Тавген, софт-архитектор из компании Playtech. В этом выпуске мы говорим про процессы разработки, обмен знаниями, архитектуру, open source и даже музыке! ;) В начале Александр рассказал про компанию в целом и свою роль и место в компании. Мы обсудили процессы разработки в крупных компаниях, где есть много продуктов или компонентов одной системы и много различных команд: как держать в узде зоопарк технологий, какие есть проблемы коммуникативного и технического плана. Александр рассказал про то, как в их компании эволюционировал процесс распространения знаний, какие они нашли для себя интересные и работающие подходы и практики, что такое кросс-команды, как они организованы и что является результатом их работы. Поговорили и про публикацию проектов в open source, как и почему выбираются те или иные технологии для реализации проекта. Обсудили социализацию в ИТ: увеличение числа конференций, локальных митапов, каких-то прочих неформальных активностей, открытость компаний в части публикации своих наработок в open source и многое другое. Так же Александр рассказал про одно своё интересное увлечение — это объединение музыки и технологий в проекте интерактивного театра. Ссылки на ресурсы по темам выпуска: * Статьи Александра на Хабре: * Сложность на границе хаоса, или что общего между сексом, нейронными сетями, микросервисами и организацией компании (https://habr.com/ru/post/327138/) * Как соединить Java, Js и графы с искусством, или история о том, как создавался интерактивный театр (https://habr.com/ru/post/425537/) * Как мы музицировали с нейронными сетями (V1) (https://habr.com/ru/post/342306/), и V2 (https://habr.com/ru/post/463237/) * Как мы делали Multitouch Table (https://habr.com/ru/post/249399/) * Как мы делали робота-футболиста (https://habr.com/ru/post/249229/) * Блог Александра на Медиуме (https://medium.com/@ATavgen) * Статьи про мониторинг: * Never Fail Twice, или как построить мониторинговую систему с нуля (https://habr.com/ru/post/352980/) * A Vision towards Observability in Practice (https://medium.com/datadriveninvestor/a-vision-towards-observability-in-practice-43948e2f4f1f) * Видео докладов и выступлений Александра: * Как соединить Java, Js и графы с искусством (https://www.youtube.com/watch?v=IYilFQN65-Y) * Observability - the good, the bad and the ugly (https://www.youtube.com/watch?v=n2lLnibmkWo) * Using InfluxDB for Full Observability of a SaaS Platform (https://www.youtube.com/watch?v=P1RvA9wHxsc) * Reactive and functional approaches (https://www.youtube.com/watch?v=15u57Z8Go7U) Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon) а так же ретвитом, постом и просто рассказом друзьям!
Встречайте 107-й выпуск подкаста, в котором мы вместе с Петей из «Пятиминутки PHP» (https://5minphp.ru/), пообщались с Кириллом Смеловым и Максимом Колмаковым, разработчиками из команды PhpStorm в компании JetBrains. В этом выпуске ребята рассказали про то, как устроена разработка PhpStorm, какая есть связь с основной платформой IntelliJ, как с технической стороны, так и социально-коммуникативной. Мы обсудили, кто и как задаёт вектор развития продукта, откуда поступают запросы на новые фичи, как происходит планирование релизов. Также ребята рассказали про команду проекта, роли и зоны ответственности, и поделились своим впечатлением от стажёрства и наставничества над студентами и какие это даёт плоды. Поговорили мы и о последних новых фичах языка и интересных возможностях PhpStorm, которые появились совсем недавно, или поддержка которых как раз планируется. Обсудили поддержку статических анализаторов для PHP, таких как PHPStan, Psalm. Ребята рассказали про интересную возможность менять поведение IDE через конфигурацию на PHP, так называемые META файлы. Обсудили такую важную вещь — как обратная связь от пользователей продукта, насколько она важна для разработчиков, что даёт открытость баг-трекера коммерческого продукта и возможные каналы обратной связи. Ссылки на ресурсы по темам выпуска: * Доклад Кирилла с PHP Russia’19 «PHP как инструмент разработки PhpStorm» (https://www.youtube.com/watch?v=8pKa195Bkno&feature=youtu.be) * Баг-трекер PhpStorm (https://youtrack.jetbrains.com/issues/WI) * New .phpstorm.meta.php features (https://blog.jetbrains.com/phpstorm/2019/02/new-phpstorm-meta-php-features/) * PhpStorm advanced metadata (https://www.jetbrains.com/help/phpstorm/ide-advanced-metadata.html) Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon) а так же ретвитом, постом и просто рассказом друзьям!
Товарищи! Рад представить вам 106-й выпуск SDCast’а. У меня в гостях Максим Шульга, технический руководитель одного из направлений разработки в SEMrush. Основной темой этого выпуска является качество программного обеспечения. Максим рассказал как он сам пришёл к пониманию того, что такое качество ПО, как его оценивать, анализировать и повышать. Мы обсудили вопросы тестирования софта: когда и в каком объёме это должны делать сами программисты, а когда целесообразней выделить для тестирования и оценки качества отдельных специалистов. Обсудили различные стадии разработки ПО и где там найдётся место для процессов тестирования и оценки качества. Обсудили так же и тему различных способов организаций команд разработки в больших компаниях: классические отделы, продуктовые команды, бизнес-юниты и прочие вариации. Какие есть плюсы и минусы в таких подходах, как внедрять новые технологии и как распространять знания внутри компании, не потеряв при этом фокус на основных ценностях команд. Максим участвовал в организации различных конференций, среди которых например Heisenbug (https://heisenbug.ru/). Поэтому мы пообщались и на эту тему. Максим рассказал про свой опыт участия, что это даёт и как устроено. Ссылки на ресурсы по темам выпуска: * Блог Максима (https://www.maxshulga.ru/) * Заметка Макса “Кто такой хороший тестировщик? (https://www.maxshulga.ru/2012/12/blog-post_17.html)” * Заметка Макса “Нужны ли тестировщики, если разработчики пишут тесты? (https://www.maxshulga.ru/2014/12/i-need-testers.html)” * Заметка Макса “Тестирование в продакшене - миф или реальность? (https://www.maxshulga.ru/2018/03/testing-in-production.html)” * Выступление Аркадия Мурашева “Действенный мониторинг доступности в вебе (https://2018.secrus.org/program/submitted-presentations/availability-monitoring/)” * Выступление Алексея Кочетова про канареечный деплой в SEMrush и использование проверок из мониторинга там (https://www.youtube.com/watch?v=Gf6jxyB2ANo) * Записи всех докладов с конференций Heisenbug (https://www.youtube.com/channel/UCX6fjZa167tSy_4ryTLcOBw) * Та самая статья “Как мы пробивали Великий Китайский Фаервол на Хабре (Часть 1 (https://habr.com/ru/company/semrush/blog/458602/), Часть 2 (https://habr.com/ru/company/semrush/blog/458840/), Часть 3 (https://habr.com/ru/company/semrush/blog/459024/)) Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon) а так же ретвитом, постом и просто рассказом друзьям!
Встречайте 105-й выпуск подкаста, в котором у меня в гостях Никита Соболев, CTO в компании wemake.services. Вместе с Никитой мы обсуждаем процессы разработки программного обеспечения, подходы, методологии, инструменты и различные другие аспекты. В начале разговора Никита немного рассказал про сообщество ElixirLangMoscow, организатором которого он является. Никита - автор методологии Repeatable Software Development Process (RSDP). Он рассказал, что это за подход, какие в нём ключевые идеи, основные моменты и как устроен сам процесс разработки, работающий по этой методологии. На примере компании wemake.services Никита рассказал, как устроена разработка у них. Мы обсудили все этапы, начиная от старта работ по новому проекту, формулирование и обсуждение требований и тех задания, декомпозиции проекта на более мелкие задачи, приёмка и проверка выполненных задач программистами, тестирование, инструменты для автоматизации различных процессов разработки и прочее. Поговорили мы так же и о soft skills, о том, как можно развиваться разработчику, как и чем его мотивировать, как общаться, особенно в распределённой команде. Затронули тему внедрения новых технологий в существующих проектах и поддержку legacy-кода. Ссылки на ресурсы по темам выпуска: * Блог Никиты (https://sobolevn.me/) на английском, где он пишет о разработке и смежных темах * Сайт компании wemake.services (https://wemake.services/meta/) * Доклад Никиты с KnowledgeConf'19 “Как учить программистов в 21-м веке” (https://sobolevn.me/talks/knowledge-conf-2019) * Интервью с Виталием Брагилевским (https://habr.com/ru/company/provectus/blog/452246/): «Мир, в котором все будут программировать на Haskell — это вряд ли хороший мир» Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon) а так же ретвитом, постом и просто рассказом друзьям!
Товарищи! Представляю вам несколько коротких интервью, записанных на конференции PHPRussia'19, которая прошла 17 мая в Москве. В начале я немного рассказал в целом про конференцию, организацию, доклады и докладчиков. А далее идут 2 интервью: * Первое интервью с Антоном Шабовтой про асинхронный PHP, многозадачность и долгоживучесть PHP-процессов. * Второе интервью с Антоном Моревым про Rest API и GraphQL, плюсы и минусы подходов, области и задачи применения. Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (http://patreon.com/KSDaemon), а так же ретвитом, постом и просто рассказом друзьям!
Ходит шутка, что как устроен PHP полностью знают только Никита Попов и Дмитрий Стогов. Так вот Никита в этом выпуске у меня в гостях! Последние несколько лет Никита активно участвует в развитии языка PHP, является автором многих интересных RFC, часть из которых уже внедрена в текущие версии PHP, и автором нескольких низкоуровневых библиотек, которые используются многими проектами. В этом выпуске мы поговорили с Никитой о различных сторонах и аспектах языка и экосистемы PHP. Никита рассказал про своё знакомство с PHP, как он стал контрибьютить в проект и в итоге стал core разработчиком. Рассказал и про то, откуда он черпает идеи для новых улучшений языка. Обсудили мы и то, как архитектура языка, заложенная на начальном этапе, влияет на текущую разработку и развитие языка, насколько легко или сложно внедрять новые возможности, подходы и парадигмы, например, многопоточность, асинхронность и прочее. Отдельно обсудили тему появления JIT в PHP. Что это даст PHP, какие плюсы несёт, какова сложность внедрения и трудозатраты на реализацию. Также Никита рассказал про разработку PHP за кадром: как core разработчики общаются между собой, обсуждают и планируют внедрение новых возможностей и улучшений языка. В завершение выпуска Никита рассказал про свой предстоящий доклад на PHPRussia '19. Ссылки на ресурсы по темам выпуска: * Список PHP улучшений за авторством Никиты (https://nikic.github.io/aboutMe.html#accepted-php-proposals) * How To Create an RFC (https://wiki.php.net/rfc/howto) (for PHP) * PHP-Parser (https://github.com/nikic/PHP-Parser). A PHP parser written in PHP * php-ast (https://github.com/nikic/php-ast). Extension exposing PHP 7 abstract syntax tree * Nikita Popov joins PhpStorm Team (https://blog.jetbrains.com/phpstorm/2019/01/nikita-popov-joins-phpstorm-team/) * Доклад Никиты на PHP Russia «Typed Properties and more: What’s coming in PHP 7.4? (https://phprussia.ru/2019/abstracts/5049)» Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon) а так же ретвитом, постом и просто рассказом друзьям!
Что вы знаете о технологиях трёхмерного сканирования и 3D-сканерах в частности? — Наверняка не многое. Интересно? — Тогда этот выпуск для вас! На этот раз у меня в гостях ребята из компании Artec 3D, занимающейся производством портативных 3D-сканеров: * Евгений Лыхин, руководитель программных разработок * Андрей Келл, тимлид команды разработки ПО сканера Leo * Павел Карпычев, программист команды разработки ПО сканера Leo * Антон Гудым, тимлид исследовательского отдела В этом выпуске мы обсудили технологии трёхмерного сканирования, достоинства и недостатки, требования к вычислительным ресурсам, скорость обработки данных, а так же области применения каждого подхода. Антон рассказал про то, как устроен процесс 3D сканирования, где и как происходит обработка данных. Совсем недавно, у компании Artec 3D появился профессиональный 3D-сканер нового поколения Artec Leo. Это первый 3D-сканер со встроенной технологией автоматической постобработки данных. Андрей и Павел рассказали про устройство этого сканера, и в особенности про его программное обеспечение. Мы обсудили всё, начиная от собственной сборки операционной системы, загрузчиков, механизмов достижения отказоустойчивости при сбое носителей и обновления системы, какие технологии используются в разработке, осветили системные сервисы, работающие на борту сканера и их коммуникации между собой и внешним миром, механизмы мониторинга и отказоустойчивости сервисов, а так же пользовательские интерфейсы. Так же ребята рассказали про то, как устроены процессы разработки внутри компании, какое окружение у разработчиков, как устроены CI/CD процессы, как происходит тестирование сборок. В заключении выпуска ребята поделились своим видением того, куда движется отрасль трёхмерного сканирования, какие появляются новые технологии и что нас ждёт в будущем.
Встречайте 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 проектов и не только!
Встречайте 100-й выпуск подкаста! В этом микроюбилейном выпуске у меня в гостях Никита Соболев, технический директор компании wemake.services (https://wemake.services/), член ПК Moscow Python Conf и Григорий Петров, программист, организатор Moscow Python Conf и говорим мы, как вы могли догадаться, про Python. В этом выпуске мы обсудили сферы применения Python, такие как бэкенд, Machine Learning, web, DevOps, где он прижился и вписался очень хорошо, где не очень, обсудили почему так сложилось. Подискутировали о языках программирования для обучения, хотя кажется, холивара не получилось и мы все втроём сошлись во мнении, что python очень хорош в качестве первого языка программирования. Обсудили и то, как развивается Python сейчас, какие появляются новые фичи, и как наследие и архитектурные решения прошлого влияют на развитие языка. Обсудили так же плюсы и минусы диктаторского и, что называется, community-driven подхода к развитию языков программирования. Ссылки на ресурсы по темам выпуска: * Конференция Moscow Python Conf ++ (https://conf.python.ru/2019) * Заметка Никиты “Python exceptions considered an anti-pattern” (https://sobolevn.me/2019/02/python-exceptions-considered-an-antipattern) * Статья Гриши на Хабре «Moscow Python Conf++ 2019 — первая конференция, где мы готовим часть спикеров с нуля сами» (https://habr.com/ru/company/oleg-bunin/blog/435752/) Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon) а так же ретвитом, постом и просто рассказом друзьям!
Товарищи, встречайте 99-й выпуск подкаста! У меня в гостях Михаил Клюев, Developer Relations менеджер в Авито. В этом выпуске мы говорим про тех пиар, Developer Relations и как сделать разработчиков счастливыми :) В начале Миша рассказал про своё понимание этого направления, в чём заключаются функции и задачи специалиста этой профессии. Мы обсудили различные направления технического пиара, техно бренда компании. Один из самых интересных вопросов — как можно оценить работу DevRel'а? Мы подискутировали на эту тему, а так же обсудили различные инструменты, которые есть в наличии у DevRel специалиста. Так же Миша рассказал про то, как устроены DevRel процессы в Авито. Обсудили мы и то, что айтишники больше всего ценят в компаниях, как различные компании используют эти ценности в своём технопиаре, какие есть тенденции и новшества в этом направлении. Поговорили мы и про каналы дистрибьюции контента и средства взаимодействия с разработчиками. В наш век блогов, твиттеров, телеграммов, различных соц сетей, чатиков, аудио и видео контент систем вопрос распространения контента и сбор обратной связи становится особенно актуальным. Конечно же подискутировали про конференции, Миша рассказал, что по его мнению с ними не так и что можно сделать, чтобы исправить ситуацию. В заключении выпуска обсудили куда движется отрасль, какие появляются новые тенденции, инструменты и направления. Ссылки на ресурсы по темам выпуска: * Доклад Миши “DevRel и HR: как достичь синергии?” (https://www.youtube.com/watch?v=EkmnFK2DxlI&feature=youtu.be) * Доклад Миши с конференции DevPRO'18 “Как перестать бояться и полюбить техпиар?” (https://www.youtube.com/watch?v=DZguoqpjLAI&feature=youtu.be) * Слайды презентации Adam FitzGerald “Which Metrics Matter in DevRel? (https://sdcast.ksdaemon.ru/wp-content/uploads/2019/02/devrelmetricsv04-170523180902.pdf)” * Отчёт от Wip Factory “5th Annual DevRel Survey. March 2018” (https://sdcast.ksdaemon.ru/wp-content/uploads/2019/02/WIPFactory-5th-Annual-DevRel-Survey-Release-March-2018.pdf) Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon) а так же ретвитом, постом и просто рассказом друзьям!
Мечтали ли вы когда-нибудь о такой платформе, где можно легко вызывать функции и модули, написанные на одном языке прямо в программе, написанной на другом языке? Сказка, не правда ли? А вот и нет! Есть такой проект, 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 целиком или какие-либо отдельные компоненты системы. Ссылки на ресурсы по темам выпуска: * GraalVM (http://www.graalvm.org/). Основной сайт проекта * github.com/oracle/graal (http://github.com/oracle/graal) — главный репозиторий проекта * graalvm-demos (https://github.com/graalvm/graalvm-demos) — репозиторий с демками на разных языках * Блог команды GraalVM (https://medium.com/graalvm) * Хороший вводный доклад про GraalVM с Devoxx'18 «Deep dive into using GraalVM for Java and JavaScript developers by Oleg Šelajev, Thomas Wuerthinger (https://www.youtube.com/watch?v=a-XEZobXspo&feature=youtu.be)» * И ещё один доклад с Devoxx'18 «GraalVM: Run Programs Faster Anywhere by Oleg Šelajev, Thomas Wuerthinger (https://www.youtube.com/watch?v=50JxcnvJjMQ&feature=youtu.be)» * Видео доклада Олега “Fast startup for Java apps with GraalVM” (https://www.youtube.com/watch?v=HC8uoEX8B5A) Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon) а так же ретвитом, постом и просто рассказом друзьям!
Встречайте 97-й выпуск SDCast’а! У меня в гостях Александр Тоболь, руководитель разработки платформ видео и лента в ОК.ru. Александр регулярно выступает на различных конференциях с докладами про архитектуру, обработку видео, передачу данных, Machine Learning и много про что ещё интересного. Но в этом выпуске мы решили сконцентрироваться на теме передачи и обработки видео по сети, хотя и без обсуждения вопросов оптимизаций в различных аспектах не обошлось :) Александр рассказал про сервис видео вещания Одноклассников, его компоненты, используемые технологии, потоки данных и архитектуру в целом. Мы обсудили какие есть основные больные узкие места при передаче видео данных. В этом контексте мы поговорили на следующие темы: * Типичные подходы к доставке/передаче видео-контента * Транспортный уровень * TCP (и различные его улучшения вроде Fast retransmit, TCP Fast Open ), UDP, QUIC и прочие * Кодеки и алгоритмы сжатия * Устойчивость к потерям данных * Адаптивность * Шифрование * Нагрузки на железо, как те или иные выбранные программные решения влияют на нагрузку * Вопросы масштабирования * Оптимизации сетевого траффика * Вопросы безопасности Так же немного пофилософствовали о настоящем и возможном будущем сред и средств передачи данных, новых протоколах, подходах и алгоритмах. Ссылки на ресурсы по темам выпуска: * Доклад Александра с AppsConf '18 про сеть между сервером и клиентом "Как ускорить интернет, или Оптимизация приложений в мобильных сетях" (видео (https://www.youtube.com/watch?v=0xKAR0AHIdY&feature=youtu.be), слайды (http://appsconf.ru/2018/abstracts/3942)) * Доклад Александра с HL++ '17 “Пишем свой протокол поверх UDP (https://habr.com/ru/company/oleg-bunin/blog/413479/)” * Доклад Александра с LinuxPiter '18 "Ускорение скорости передачи данных в плохих сетях" (описание (https://linuxpiter.com/materials/2476), слайды (https://linuxpiter.com/system/attachments/files/000/001/525/original/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80_%D0%A2%D0%BE%D0%B1%D0%BE%D0%BB%D1%8C__%D0%A3%D0%B2%D0%B5%D0%BB%D0%B8%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D0%BA%D0%BE%D1%80%D0%BE%D1%81%D1%82%D0%B8_%D0%BF%D0%B5%D1%80%D0%B5%D0%B4%D0%B0%D1%87%D0%B8_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%B2_%D0%BF%D0%BB%D0%BE%D1%85%D0%B8%D1%85_%D1%81%D0%B5%D1%82%D1%8F%D1%85__v4.pdf?1541251262), видео пока ещё нет) * Лучший ресурс про сравнение кодеков (http://www.compression.ru/video/codec_comparison/hevc_2018/) Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon) а так же ретвитом, постом и просто рассказом друзьям!
Встречайте 96-й выпуск SDCast’а, в котором речь идёт про безопасность разрабатываемых нами приложений. У меня в гостях Юрий Шабалин, ведущий архитектор в компании Swordfish Security. В этом выпуске мы говорим про практики SecDevOps, Application Security и прочие аспекты информационной безопасности программных продуктов. Вместе с Юрой мы попробовали обсудить весь жизненный цикл разработки ПО и как и на каких стадиях можно и нужно внедрять механизмы обеспечения безопасности: что можно сделать на этапе постановки задачи и сбора требований и заканчивая активным и проактивным мониторингом боевых приложений. Юра рассказал про различные классы инструментов, помогающие решать задачи по ИБ, такие как: * SAST (инструменты статического анализа) * SCA/OSA (инструменты контроля рисков компонент с открытым исходным кодом) * DAST/IAST (инструменты динамического/интерактивного анализа) * Инструменты непрерывной интеграции / непрерывного развертывания (CI/CD) * Инструменты дефект-менеджмента Обсудили, как можно безболезненно встраивать эти инструменты в уже существующие процессы CI/CD и как лучше подойти к этим вопросам при запуске нового проекта. Ссылки на ресурсы по темам выпуска: * Базовые уязвимости OWASP Top 10 (https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project) * Требования OWASP Application Security Verification Standard (https://www.owasp.org/index.php/Category:OWASP_Application_Security_Verification_Standard_Project#tab=Downloads) * Как проверять требования (OWASP Testing Guide) (https://github.com/OWASP/OWASP-Testing-Guide-v5) * (https://continuumsecurity.net/bdd-security/)BDD Security (https://continuumsecurity.net/bdd-security/). Неплохая идея, как можно автоматизировать проверку требований * BSIMM. Фреймворк для построения процесса SSDL (https://www.bsimm.com/) * OpenSAMM. Фреймворк для построения процесса SSDL (https://www.opensamm.org/) * Nexus IQ. Платформа для проверки OpenSource Components (https://www.sonatype.com/nexus-iq-server) * Checkmarx SAST. Инструмент SAST (https://www.checkmarx.com/products/static-application-security-testing/) * Appsec Orchestration. Управление и оркестрация процессов SSDL (https://swordfishsecurity.ru/appsechub) * Бэкдор в event-stream (https://habr.com/post/431360/) * Несколько открытых проектов с уязвимостями для обучения: * DVWA (http://www.dvwa.co.uk/) * Juice Shop (https://www.owasp.org/index.php/OWASP_Juice_Shop_Project) * iOS (http://damnvulnerableiosapp.com/) * Android (https://github.com/dineshshetty/Android-InsecureBankv2) * Гайд для Security Champions (security-champions-playbook) (https://github.com/c0rdis/security-champions-playbook) Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon) а так же ретвитом, постом и просто рассказом друзьям!
Встречайте 95-й выпуск SDCast’а, в котором мы говорим про мир Java и JVM. В этот раз у меня в гостях ребята из компании Excelsior, чей флагманский продукт - это Excelsior JET (https://www.excelsior.ru/products/jet), реализация Java™ SE на основе статической компиляции. Поэтому в этом выпуске мы обсуждаем много технических аспектов реализации Java, как рантайма, так и компилятора, утилит мониторинга и производительности и многое другое. Итак, в этом выпуске приняли участие: * Никита Липский, один из инициаторов проекта Excelsior JET, и на данный момент руководитель продуктовго отдела JET. * Павел Павлов, в проекте с 1998 года, отвечает за компиляторную часть проекта, архитектуру ядра JVM, обучает и курирует стажёров и студентов. * Иван Углянский, один из разработчиков рантайма: GC, загрука классов, многопоточность, профилирование и т.д. В начале ребята рассказали про историю компании, предпосылки и причины появления на свет альтернативной реализации JVM. Мы обсудили чего не хватает в стандартной JVM, какие есть проблемы, которые пытаются решить другие JVM. Далее ребята рассказали про Excelsior JET: * Чем она отличается от других? * Какие есть особенности и фичи? * На чём написана? * Как выглядит архитектура системы в целом, какие есть модули, компоненты что и как взаимодействует * Runtime и компилятор, как они устроены, какие алгоритмы используют * Вопросы оптимизации производительности как компилятора, так и рантайма В процессе дискуссии обсудили в целом JIT и AOT подходы, достоинства и недостатки каждого, в каких случаях выигрывает один вариант, а в каких другой. Вспомнили и про другие реализации JVM и интересные проекты в этой области, например набирающий популярность GraalVM. Ссылки на ресурсы по темам выпуска: * Старый (но хороший) доклад Паши и Никиты про JET и историю его появления (https://www.youtube.com/watch?v=G9Oj3e1XCRg) * Доклад Никиты и Паши со встречи JUG.ru'13 “Excelsior JET: внутренняя архитектура (https://www.youtube.com/watch?v=tXDoGWGfZyw&t=2884s)” * Доклад Никиты и Виталия Михеева с Java Day'16 “История одной JVM в картинках (https://www.youtube.com/watch?v=DHsVeZNqiVc)” * Блог Excelsior JET (https://www.excelsiorjet.com/blog/), где можно найти много статей с различными техническими подробностями * Conservative GC: Is It Really That Bad? (https://www.excelsiorjet.com/blog/articles/conservative-gc-is-it-really-that-bad/) * Доклад Вани с JPoint'18 “Как сделать встроенный в JVM профайлер, который не боится AOT компиляции (https://www.youtube.com/watch?v=iw4O7G2eyHg&list=PLVe-2wcL84b9CC4_PMCxQrDYywz7J0beo)” * Доклад Максима Казанцева с jBreak'18 “Как генератор тестов помог стабилизировать компилятор в Zing VM (https://www.youtube.com/watch?v=eyWFQ42dzd0)” * Доклад Никиты про JetPerfect с JavaDay Kiev'14 “Java худеет. Уменьшение размера дистрибутива Java приложения без зависимостей (https://www.youtube.com/watch?v=2v3YapNH4ss&feature=youtu.be&t=878)” * Доклад Никиты с JavaDay Kiev'14 “AOT компиляция (https://www.youtube.com/watch?v=aw89H-Vv-Zs)” * Доклад Никиты и Владимира Парфиненко с Joker'15 “JVM: краткий курс общей анатомии (https://www.youtube.com/watch?v=JbLClSMRK_I)” * Доклад Vojin Jovanovic с Joker'16 “Polyglot on the JVM with Graal: One VM for Java, node.js, Ruby, R, and C++! (https://www.youtube.com/watch?v=4WZWBpMp2vo)” * Доклад Douglas Hawkins с JPoint'18 “ReadyNow — an «AOT» with profiling for Java (https://www.youtube.com/watch?v=AGyctnc1DTA)” * Доклад Volker Simonis со встречи JUG.ru'15 “SAP JVM Internals (https://www.youtube.com/watch?v=IsERHnGn7Vs)” * Доклад Dan Heidinga с GeeCON'17 “OpenJ9: Under the hood of the next open source JVM (https://www.youtube.com/watch?v=3VporpPlDds)” * Доклад Marcus Lagergren с JavaDay Kyiv'15 “Design rationales in the JRockit JVM (https://www.youtube.com/watch?v=NODsunhgHRQ)” Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon)
Друзья, рад представить вам интервью с Алексеем Лесовским и Виктором Егоровым из компании Data Egret (https://dataegret.ru/), записанное на прошедшей конференции Highload++ 2018 (http://www.highload.ru/moscow/2018). В этом выпуске мы говорим конечно же про Postgres. Не так давно у меня в гостях был Илья Космодемьянский, но мы больше говорили на общие темы баз данных, их роль в ИТ системах, образовании и прочем. В этот раз мы сконцентрировались больше на технических и практических аспектах работы с PostgreSQL. Мы обсудили типичные ошибки при проектировании база данных, которые допускают разработчики систем, обсудили типичные ошибки администраторов баз данных, углубились в различные технические аспекты работы PostgreSQL, такие как взаимодействие с дисками, Direct I/O и прочее. Подискутировали на тему кластеров, отказоустойчивости и безопасности систем, вспомнили различные вспомогательные инструменты для работы с PostgreSQL, такие как прокси-серверы, инструменты бэкап/рестора. В завершении выпуска обсудили последние нововведения в 11-й версии PostgreSQL и что может появится нового и интересного в 12-й версии базы данных. Ссылки на ресурсы по темам выпуска: * Доклад Алексея с HL++'18 “Топ ошибок со стороны разработки при работе с PostgreSQL” (https://www.youtube.com/watch?v=HjLnY0aPQZo) * Доклад Виктора с HL++'18 “Выбираем систему репликации для PostgreSQL” (https://www.youtube.com/watch?v=YQ63niptCTc&fbclid=IwAR0isuymXYSsGV8JI7bnehl3rQAf5KyuOuYVRSwPpmU1XqD1Tkv6_gqgXVs) * Подкаст с Ильёй Космодемьянским (https://sdcast.ksdaemon.ru/2018/11/sdcast-92/) * Skytools (https://wiki.postgresql.org/wiki/SkyTools) * Skytools PGQ Tutorial (https://wiki.postgresql.org/wiki/PGQ_Tutorial) * SkyTools: помощь в вопросах масштабирования (http://profyclub.ru/docs/176) * MVCC Unmasked (https://momjian.us/main/writings/pgsql/mvcc.pdf) * Видео доклада Брюса Момжана “MVCC Unmasked” с HL++ 2012 (https://www.youtube.com/watch?v=KVEfxb5lid8) * Tuning Your PostgreSQL Server (https://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server) * PostgreSQL, Systemd, RemoveIPC (https://wiki.postgresql.org/wiki/Systemd) * Filesystem write barriers (https://docs.fedoraproject.org/en-US/Fedora/14/html/Storage_Administration_Guide/writebarr.html) * Основы CPU Performance Scaling (https://www.kernel.org/doc/html/v4.12/admin-guide/pm/cpufreq.html) * Детали работы intel_pstate (https://www.kernel.org/doc/html/v4.12/admin-guide/pm/intel_pstate.html) * Видео доклада Matthew Wilcox “How Linux handles IO errors” с PGCon 2018 (https://www.youtube.com/watch?v=74c19hwY2oE) * Что нового в PostgreSQL 11.1 (https://www.postgresql.org/docs/current/release-11-1.html)
Друзья, рад представить вам интервью с Игорем Лебедевым и Алексеем Кротовым из компании SONM (https://sonm.com/), записанное на прошедшей конференции Highload++ 2018. SONM — это децентрализованная туманная платформа для вычислений. Она позволяет с одной стороны предоставлять неиспользуемые мощности ваших компьютеров, как серверных, так и десктопных, а с другой стороны брать в аренду эти самые мощности для ваших вычислений, будь до рендеринг видео, расчёт научных задач, или даже для игр. Ребята рассказали про то, как устроена платформа, из каких компонент она состоит и как функционирует. SONM является открытой платформой, код проекта доступен на github, ядро системы написано на go, использует docker под капотом, использует blockchain технологию и умные контракты и много чего ещё интересного :) Игорь рассказал про технические особенности платформы, а Алексей про экономическую составляющую проекта. Ссылки на ресурсы по темам выпуска: * Сайт проекта SONM (https://sonm.com/) * Проекты SONM на GitHub (https://github.com/sonm-io) Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon) а так же ретвитом, постом и просто рассказом друзьям!
Встречайте 92-й выпуск SDCast’а! У меня в гостях Илья Космодемьянский, один из основателей и директор компании Data Egret. Илья является активным участником сообщества PostgreSQL, он регулярно выступает на различных конференциях как с довольно сложными техническими докладами о внутренностях PostgreSQL, так и с докладами про soft skills, получение опыта и знаний в области баз данных. В этом выпуске мы обсуждаем в целом роль баз данных в ИТ системах, как поменялась разработка софта и требования к базам данных в связи с возросшей нагрузкой и увеличением мощностей вычислительных ресурсов, с развитием процессов разработки, появлением различных архитектур, таких как микросервисы и прочие. Подискутировали о том, какое влияние на классические RDBMS оказали такие новые (и уже не очень) веяния, как noSQL и newSQL. Обсудили, как различные БД и PostgreSQL в частности адаптируются под новые требования к надёжности, масштабируемости, отказоустойчивости. Посмотрели в ретроспективе на развитие PostgreSQL, вспомнили что с ним было 10−15 лет назад, когда MySQL был на коне, и какое место PostgreSQL занимает сейчас, как изменился процесс разработки и что происходит в проекте сейчас. Отдельно обсудили тему знаний и как стать экспертом в области баз данных, какие для этого нужные базовые знания, как и где набираться опыта. Илья рассказал про свой путь в IT, поделился своими практическими советами и рекомендациями.
Друзья, рад представить вам интервью с Андреем Маркеловым из компании Infobip, записанное на прошедшей конференции DevOps Conf Russia 2018. Андрей является ведущим инженером-программистом в компании Infobip, более 11 лет занимается разработкой приложений на Java в области финансов и телекоммуникаций. Активный участник Atlassian Community, апологет использования Prometheus, Docker и Redis. Мы обсудили общие вопросы мониторинга, сбора метрик, различные подходы, подискутировали о том, что когда и как надо собирать. Андрей рассказал про Prometheus: что это за проект, как он устроен, как происходит сбор метрик, возможности для расширения и интеграции с другими системами и многое другое.