SDCast #64: Игорь Демьянов и Евгений Гусев, фронтенд менеджер и фронтенд тимлид из компании Wrike

Рад представить вам 64-й выпуск SDCast’а! У меня в гостях Игорь Демьянов и Евгений Гусев, фронтенд менеджер и фронтенд тимлид из компании Wrike. Wrike активно используют у себя язык Dart, об этом и пойдет речь в этом выпуске.

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

Поговорили мы про сам язык Dart. В начале ребята сделали небольшой экскурс в историю языка и путь его развития, затем мы обсудили основные парадигмы и ключевые концепции языка. На протяжении всего выпуска конечно же всплывали темы сравнения и сопоставления Dart и JavaScript, Dart и Typescript, взаимодействия со сторонними библиотеками и прочие вопросы касательно современной веб-разработки.

Ребята рассказали, как они переводили свой сервис в части frontend с JavaScript на Dart. Какой был план перехода и вообще подход к этому процессу и насколько он оказался лёгким или сложным с точек зрения:

  • Разработчиков
  • Процессов сборки
  • Процессов тестирования
  • Процессов выкладки релизов
  • Взаимодействия с другими компонентами системы

Обсудили мы и экосистему вокруг Dart: различные инструменты, линтеры, сборщики, пакетные менеджеры, интеграции с IDE и всё прочее.

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

Читать далее

SDCast #63: в гостях Алексей Маркин, программист из МЦСТ

Приветствую, товарищи! В предыдущем выпуске мы немного затронули тему процессоров «Эльбрус» и VLIW-архитектуры , но эта тема показалась интересной, и вот, в этом выпуске у меня снова в гостях Алексей Маркин, программист из МЦСТ, и этот выпуск целиком и полностью посвящен этой теме.

Вначале Лёша рассказал немного про компанию МЦСТ, историю её появления и развития, направления деятельности, и чем компания занимается сейчас.

Далее мы поговорили про процессоры «Эльбрус», что они из себя представляют, чем они принципиально отличаются от других архитектур (x86, ARM, RISC и прочее). Для VLIW-архитектуры «Эльбруса» порядок инструкций исполнения программы имеет особо важное значение, так как процессор не умеет их сам переставлять, поэтому оптимальный порядок формируется уже на этапе компиляции программы, и компилятор является неотъемлемой частью архитектуры.

Далее мы обсудили оптимизирующий компилятор для процессоров «Эльбрус», непосредственно разработкой которого Алексей и занимается. Лёша рассказал, что это такое — оптимизирующий компилятор, зачем он нужен и какие задачи решает, в чём его отличие от «обычных» gcc, clang. Довольно подробно Лёша рассказал про различные типы оптимизаций, которые присутствуют в компиляторе, что они дают на выходе в плане производительности, рассказал как вообще эти оптимизации находятся и разрабатываются и внедряются в компилятор. Рассказал про различные подводные камни на этом тернистом пути оптимизации :)

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

Читать далее

SDCast #62: в гостях Александр Титов и Амир Аюпов, инженеры из Intel и Алексей Маркин, программист из МЦСТ

Такого еще не было! Товарищи, рад представить вам 62-й выпуск подкаста, в котором у меня не один, а сразу целых три гостя! На этот раз вместе с Александром Титовым и Амиром Аюповым, инженерами из Intel и Алексеем Маркиным, программистом из МЦСТ, мы обсуждаем тему процессоров и разработку на стыке Hardware & Software. Отдельная большая часть подкаста посвящена вопросам айтишного образования в России.

По традиции, в начале ребята вкратце рассказали про себя, кто есть кто и чем занимается. Ну а дальше мы окунулись в мир процессоров! Обсудили из каких компонентов состоит процессор вкратце, как происходит выполнение пользовательского кода на процессоре, опять же очень условно, не вдаваясь в сложные технические детали. Обсудили какие бывают архитектуры и вообще что подразумевается под архитектурой процессора, чем отличаются x86, ARM, Эльбрус с точки зрения систем команд: традиционные RISC и CISC, плюс альтернативный VLIW.

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

Так же обсудили различные типа процессоров: CPU, GPU, различные кастомные железки, FPGA и прочее; какие классы задач решаются теми или иными процессорами, вопросы железячного прототипирования и разработки своего железа «с нуля».

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

Во второй части подкаста мы пообщались про направление “Computer Science” в образовании. Поскольку все из участников подкаста так или иначе имеют отношении к высшему образованию, кто-то преподавал, кто-то преподает сейчас, мы вспомнили как это было у нас. Ребята рассказали про то, какие курсы и лекции они читают сами, поделились своим опытом преподавания и взаимоотношениями с институтами.

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

Читать далее

SDCast #61: в гостях Павел Аргентов, практикующий fp-программист

Встречайте 61-й выпуск SDCast’а, целиком и полностью посвящённый языку OCaml. У меня в гостях Павел Аргентов, практикующий fp-программист. В этом выпуске мы попытались осветить все аспекты языка OCaml, сферы его применения, вопросы разработки, экосистему и сообщество вокруг.

В начале Паша сделал довольно подробный экскурс в историю появления самого языка, начиная с появления диалекта Lisp’а в семидесятых, добавление алгебраических типов данных и категориальной абстрактной машины в восьмидесятых, появление реализации Caml Light в девяностых и заканчивая уже современной инкарнацией c поддержкой объектной модели.

Подробно обсудили основые парадигмы языка и ключевые концепции, такие как: функциональное программирование, strict-механика и вытекающие из этого последствия, связывание переменных и лексические скоупы для связывания, система типов Хиндли-Милнера и опциональные аннотации типов, ООП-слой, язык модулей и функторы, инструментарий для синтаксического расширения (собственные DSL) и многое другое.

Пообщались о сферах применения языка, для каких задач OCaml подходит лучше всего, какие преимущества у него по сравнению с другими языками в контексте этих задач. Паша рассказал про различные известные (и не очень) проекты, написанные на OCaml, среди которых, например, MirageOS, фреймворк для построения Unikernel систем. Рассказал про различные проекты, написанные под сильным влиянием OCaml. В основном это различные языки программирования, которые основаны на идеях OCaml, например FSharp, Haxe или ReasonML.

Не забыли мы обсудить и экосистему вокруг языка, какие есть инструменты для работы с языком: моды к различным IDE, браузер типов, пакетные менеджеры и прочие сопутствующие инструменты, коммьюнити вокруг языка, списки рассылки, места скопления OCaml-программистов, чаты и форумы.

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

Читать далее

SDCast #60: в гостях Иван Круглов, програмист Booking.com

sd-podcast-logoРад представить вам 60-й выпуск SDCast’а! У меня в гостях Иван Круглов, програмист Booking.com. Некоторое время Иван занимался разработкой подсистемы поиска отелей, именно об этом и пойдёт речь в этом выпуске.

Офис разработки Booking.com расположен в Амстердаме и в начале Иван рассказал как он туда попал. Поделился опытом прохождения интервью, подготовкой к собеседованиям в различных российских, европейских и американских компаниях.

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

Иван рассказал про то, как они ушли от баз данных MySQL к встраиваемому решению, а именно RocksDB. Рассказал про материализацию данных для поиска, шардирование данных и эффективную обработку запросов.

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

Читать далее

SDCast #59: в гостях Максим Железный, QA team lead в компании Trinity Digital

Встречайте 59-й выпуск SDCast’а, который посвящен тестированию мобильных приложений. У меня в гостях Максим Железный, QA team lead в компании Trinity Digital.

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

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

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

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

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

Читать далее

SDCast #58: в гостях Павел Одинцов, разработчик системы обнаружения DDoS атак FastNetMon

DDoS… Как часто мы стали слышать этот термин в айтишных новостях. Сейчас это одна из наиболее распространённых типов атак на информационные системы. В этом выпуске у меня в гостях Павел Одинцов, разработчик системы обнаружения DDoS атак FastNetMon.

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

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

Далее мы обсудили сам проект FastNetMon. Паша рассказал историю своих первых экспериментов, как он получил «proof of concept», и как в дальнейшем происходило развитие системы как с архитектурной точки зрения, так и со стороны функциональности. Паша подробно рассказал про внутреннее устройство системы, как происходит обработка входящего трафика, как происходит расчёт метрик и как в конечном счёте принимается решение о легитимности трафика.

В процессе обсуждения были затронуты и общие вопросы построения сетевой инфраструктуры провайдера или датацентра, вкратце освещены разные сетевые протоколы, такие NetFlow, IPFIX, sFlow и другие. Так же Паша рассказал как происходит тестирование FastNetMon. Это не простой вопрос, потому что для полноценного тестирования такого рода систем необходимо большое количество дампов разнородного сетевого трафика. Откуда его взять? Спасибо пользователям проекта, которые для решения своих настоящих и потенциально будущих проблем готовы поделиться своими данными. Так же интересный вопросы — это взаимодействие с вендорами оборудования. Поскольку в конечном итоге сетевой трафик идет через конкретные коммутаторы и маршрутизаторы того или иного производителя, и не смотря на принятые и открытые стандарты, как это водится, каждый вендор трактует стандарты и протоколы немного по-своему.

В завершении беседы мы немного пообщались на тему Open Source в целом и в разрезе проекта FastNetMon в частности. Паша рассказал, какие он видит плюсы, что дала ему публикация проекта в open source, какое появилось сообщество у проекта.

Читать далее

SDCast #57: в гостях Игорь Антонов, тимлид в компании ДальЖАСО, наставник в HTML Academy и организатор ha.js

Друзья, что вы знаете про 1С, кроме дурной славы и программ на русском языке? В этом выпуске мы попробуем развенчать различные мифы про платформу 1С, а так же обсудить, как она устроена и какими возможностями обладает. У меня в гостях Игорь Антонов, тимлид в компании ДальЖАСО, наставник в HTML Academy и организатор встреч фронтенд-разработчиков Хабаровска ha.js.

В этом выпуске Игорь подробно рассказал про платформу 1С:Предприятие: что в ней было в начале, как она развивалась и что есть сейчас. Рассказал про внутреннее устройство и архитектуру, что такое конфигурации и как они строятся, как происходит взаимодействие с объектами системы внутри и снаружи. Рассказал про сравнительно новые возможности мобильной разработки, интеграции с внешними системами, REST-сервисы, API, использование 1C в качестве бэкенда для веб-приложений и много чего ещё.

Отдельно пообщались на тему того, как устроен процесс разработки для платформы 1С, чем он отличается от привычной разработки на других языках. Игорь рассказал, как происходит публикация конфигураций, чем обслуживание и сопровождение систем на базе 1С отличается от обычных клиент-серверных приложений.

Поскольку Игорь является активным участником frontend сообщества, наставничает в HTML Academy и является инициатором и организатором встреч ha.js, не обошли мы стороной и эти темы. Игорь расссказал, как он увлёкся вебом, и как затем решил стать наставником в HTML Academy. Поделился тем, что им движет, и какие цели он преследует организовывая встречи сообщества ha.js.

Читать далее

SDCast #56: в гостях Антон Солдатов, инженер-программист из компании IPONWEB

sd-podcast-logoЛюбите ли вы Lua так же, как люблю его я? А вот ребята из компании IPONWEB настолько его полюбили, что даже сделали свою собственную имплементацию Lua! :) Об этом и пойдет речь в этом выпуске. У меня в гостях Антон Солдатов, инженер-программист из компании IPONWEB, где он занимается разработкой и поддержкой их реализации Lua.

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

Компания IPONWEB занимается разработкой в области RTB (Real Time Bidding) систем. Это технология закупки медийной рекламы посредством программируемых онлайн-аукционов. Вначале Антон рассказал про то, что это за системы, какие задачи они решают, какие есть компоненты и сущности в RTB-системах, что такое DSP и SSP, как они устроены и фукнционируют.

Далее Антон рассказал про их RTB-платформу, какие задачи она решает и унифицирует. Рассказал про архитектуру системы и где там нашлось место для Lua. Так же Антон рассказал про то, как развивалась платформа, чем не устраивал существующий на тот момент LuaJIT и как они пришли к тому, чтобы сделать свой форк LuaJIT и развивать его в дальнейшем своими силами.

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

Читать далее

SDCast #55: в гостях Сергей Аверин, технический эксперт и конференционный маньяк

sd-podcast-logoРад представить вам 55-й выпуск SDCast’а! У меня в гостях Сергей Аверин, технический эксперт и конференционный маньяк из компании «Acronis». В этом выпуске мы говорим про Go, Python, параллельное программирование в Go, а так же обсуждаем обычные разработческие будни.

В начале Сергей рассказал про то, как он сам познакомился с языком Go, на каких задачах начал его применять, и как происходило внедрение языка в компании. Вопреки расхожему мнению о том, что на Go обычно переходят с Php или JavaScript, в «Acronis» инициаторами перехода были разработчики C/C++. Для лучшего понимания, Сергей рассказал о приложениях и сервисах, о том, какие задачи необходимо было решить, и как происходил процесс внедрения, какие были сложности и трудности, а главное — какие получились бенефиты в результате перехода.

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

Так же, в компании “Acronis” активно используется Python, поэтому не обошли мы стороной и этот язык. Сергей немного рассказала про то, где и как они используют Python в своих сервисах.

Читать далее