Русский
Русский
English
Статистика
Реклама

Конференции

Перевод Биография основателя DEF CON и Black Hat Джеффа Мосса (Dark Tangent)

10.06.2021 14:04:32 | Автор: admin

К старту курса об этичном хакерстве мы перевели размещённую на сайте Black Hat биографию основателя этой серии мероприятий по кибербезопасности. Джефф Мосс родился в Калифорнии, США, в январе 1975 года, он эксперт по компьютерной и интернет-безопасности, хакер. Первый опыт работы с компьютером он получил в возрасте 10 лет и был восхищён возможностью общаться и вести взрослые разговоры с людьми по всему миру. У него ещё не было водительских прав, Джефф не мог голосовать, но мог общаться с людьми намного старше его, которых нисколько не волновали ни его возраст, ни внешность.


Джефф МоссДжефф Мосс

Начало хакерского пути

Его первый хакерский опыт был вызван исключительно желанием задействовать все возможности оборудования, за которое он заплатил; те же мотивы побудили хакера Джорджа Хотца (geohot) взломать Sony PlayStation, а затем сделать джейлбрейк iPhone. В начале 1990-х Джефф пытался понять, как фирмы защищают от копирования компьютерные игры. Ему это удалось, и он стал играть в скопированные игры со своими друзьями.

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

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

Когда у него появился первый модем и он понял, какие бесконечные возможности общения предоставляют доски объявлений (bulletin boards) никому не надо раскрывать свою личность, возраст или пол, его восхищению не было предела. Желание общаться с людьми в сети Интернет заставило его прибегнуть к телефонному жульничеству. Джефф взломал телефонную систему и мог практически бесплатно общаться с людьми на больших расстояниях.

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

По словам самого Джеффа, в жизни ему везло много раз, но этот случай был особенным: "Мне повезло, что я научился работать с модемом, и повезло, что судьба свела меня с тем парнем, рассказавшим мне о хакерстве. Никаких глобальных планов я в то время не строил, это было просто счастливое стечение обстоятельств".

В 1990 году Джефф окончил Университет Гонзага со степенью бакалавра в области уголовного права. (Признайтесь, вы не ожидали, что парень, стоявший у истоков конференций DEF CON и Black Hat, имеет степень бакалавра в области уголовного права!) После университета его взяли на работу в одну из крупнейших мировых компаний по предоставлению профессиональных услуг, Ernst & Young, на должность директора подразделения Secure Computing Corporation.

DEF CON: от прощальной вечеринки до одной из крупнейших в мире хакерских конференций

В 1990-е годы весь мир пользовался досками объявлений. Такие доски часто использовались хакерами для обмена информацией. Джефф держал собственную доску объявлений и мог позволить себе оплачивать телефонную связь из своей зарплаты, но его приятели, как правило, находили способы не платить за телефонную связь. В тот же период он стал своего рода главным администратором множества международных сетей, таких как HackNet, PhreakNet, PlatinumNet и HitNet.

В 1993 году его друг, оператор канадской хакерской сети PlatinumNet, работавшей по протоколу FidoNet, задумал провести прощальную вечеринку для всех членов сети PlatinumNet, так как он с семьёй собирался переезжать в другую страну (отцу предложили лучшую работу).

Большинство пользователей этих сетей были американцами, поэтому он попросил Джеффа помочь с организацией вечеринки и провести её в США. Джефф начал готовить вечеринку и уже нашёл место в Лас-Вегасе для её проведения, но получилось так, что отец друга уехал раньше задуманного и забрал сына с собой, и Джефф остался один.

Мосс решил не отменять вечеринку, всё организовал сам, пригласил членов администрируемых им сетей, разослал приглашения в хакерские чаты IRC, разместил объявления на некоторых других досках, разослал всем факсы и даже отправил факсы в секретные службы США, сообщив, что "они идут". Встреча хакеров состоялась в Лас-Вегасе.

Название DEF CON имеет интересную историю. Defcon звали главного героя в фильме WarGames, который решил взорвать Лас-Вегас. Кроме того, термин DEF был в ходу у телефонных мошенников, в том числе у самого Джеффа, так как DEF это символы на кнопке "3" телефонной клавиатуры. И вот тот день настал, на конференции DEF CON должны были выступить 12 докладчиков. Приехали более 100 человек, и первая в истории конференция началась с выступления Дэна Фармера, эксперта по безопасности UNIX, который рассказал о разработанных им новых инструментах, в том числе SATAN одном из первых сканеров сетевой безопасности с веб-интерфейсом.

DEF CON 1 Defcar, 1993DEF CON 1 Defcar, 1993

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

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

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

DEF CON, следуя поговорке "под лежачий камень вода не течёт", продолжала развиваться. В её программу были включены соревнования CTF (захват флага), в которых команды участников соревнуются друг с другом, пытаясь быстрее других найти секретные "флаги" в намеренно уязвимых программах или веб-сайтах и получить за это награды. Black Badge высшая награда, вручаемая участникам DEF CON, победители получают ценные подарки и пожизненный бесплатный пригласительный билет на DEF CON.

Добавление семинаров (специальных собраний, на которых с упором на практику затрагивались различные темы, связанные с информационной безопасностью), таких как цифровая криминалистика, взлом IoT-устройств, и Деревни (Villages) (особые места в рамках конференции, имеющие статус мини-конференций), способствовало росту популярности мероприятия. DEF CON на протяжении многих лет занималась сбором денежных средств на различные программы.

За годы проведения мероприятия хакеры смогли показать миру, с какой лёгкостью можно взломать обычный компьютер, а также продемонстрировали множество инновационных инструментов/программ, совершивших революцию в сфере информационной безопасности. В 2018 году Джефф провёл первую в истории конференцию DEF CON за пределами США в Пекине, и этот формат был продолжен в 2019 году как DEF CON China 1.0.

В 2019 году конференцию DEF CON 27 посетило 30 тысяч человек, причём некоторые откровения докладчиков были ошеломляющими. Хакерам удалось взломать комплексы обработки избирательных бюллетеней в США, за считанные минуты после сканирования обнаружив в них критические уязвимости. Один из хакеров смог продемонстрировать вредоносные возможности кабеля Apple USB Lighting и многие другие критические уязвимости, обнаруженные в VPN и принтерах.

DEF CON 27DEF CON 27

Как начиналась конференция Black Hat

До DEF CON 5, которая была проведена в июле 1997 года также в Лас-Вегасе, Джефф организовал первую в истории конференцию Black Hat, ориентированную на индустрию компьютерной безопасности. Темами других конференций были информационная и сетевая безопасность, на конференции же Black Hat разработчики программного обеспечения встретились лицом к лицу с экспертами в области компьютерной безопасности и хакерами. Вначале конференция Black Hat проводилась как ежегодное мероприятие в Лас-Вегасе, но сегодня она проводится сразу в нескольких местах во всём мире.

В 2005 году Джефф продал права на проведение конференций Black Hat британской компании CMP Media, принадлежащей United Business Media, за 13,9 миллиона долларов США.

Конференция состоит из трех секций: Black Hat Briefings, Black Hat Trainings и Black Hat Arsenal. На секции Briefings обсуждаются различные темы, в том числе вскрытие технологий, компьютерный взлом, конфиденциальность и т. д., а также выступают ведущие специалисты в области информационной безопасности из различных ведомств США Министерства обороны, Министерства внутренней безопасности и АНБ.

На секции Trainings выступают поставщики решений в сфере безопасности и специалисты в области безопасности: семинары продолжительностью около недели организуют такие поставщики ПО, как Cisco, Offensive Security и многие другие. Секция Arsenal был создана в 2010 году. Её цель "живая" демонстрация новейших инструментов информационной безопасности с открытым исходным кодом, созданных исследователями и сообществами, в ходе которой участники могут задавать вопросы и пробовать инструменты в действии.

Конференция Black Hat обычно проводится до DEF CON, и многие участники посещают оба мероприятия. В индустрии безопасности Black Hat считается более официальной конференцией по безопасности, а DEF CON носит скорее неформальный характер.

Black Hat USA 2016Black Hat USA 2016

Другие события в карьере Джеффа

На протяжении всей своей карьеры Джефф использовал свои навыки и понимание принципов и методов хакерского сообщества и передавал эти знания организациям, чтобы те могли защитить свои глобальные сети. С 2005 по 2014 год он также выступал на множестве мероприятий, проводимых во всём мире, в качестве основного докладчика, был участником десятков форумов. Некоторые такие мероприятия организовывались CodeGate, Министерством внутренней безопасности США, АНБ, НАТО и многими другими международными организациями и учреждениями.

В 2009 году Джефф вошёл в группу из 16 человек, выбранных в состав Консультативного совета по национальной безопасности. Члены Консультативного совета могли давать рекомендации и советы непосредственно министру внутренней безопасности.

Через два года, в 2011 году, Джефф был назначен вице-президентом и директором по безопасности Корпорации по управлению доменными именами и IP-адресами (ICANN), многонациональной некоммерческой организации, работающей над созданием безопасной, стабильной и единой глобальной сети Интернет. Многие официальные лица, в том числе президент ICAAN, отмечают профессионализм и мастерство Джеффа и ценят его за прекрасное понимание угроз безопасности и способов защиты от них.

В конце 2013 года он ушёл со своего поста в ICAAN. Следующий его важный карьерный шаг состоялся в 2017 году, когда он был назначен Комиссаром Глобальной комиссии по стабильности киберпространства (GCSC), состоящей из 24 авторитетных независимых комиссаров со всего мира. Цель работы Комиссии способствовать повышению уровня осведомлённости и взаимопонимания между различными сообществами киберпространства и изучать вопросы, связанные с глобальной кибербезопасностью.

В 2017 году на конференции DEF CON 25 он представил участникам Деревню машин для голосования DEF CON (Voting Machine Village). На этом семинаре хакеры могли протестировать безопасность электронных машин для голосования, в том числе нескольких моделей, по-прежнему активно используемых в США. Участникам DEF CON удалось взломать все машины (в общей сложности 25 моделей), некоторые всего через несколько часов после открытия Деревни. Это событие получило освещение в СМИ и вызвало общенациональную дискуссию о безопасности голосования.

В 2018 году проект Voting Machine Village был отмечен премией Cybersecurity Excellence как проект года в области кибербезопасности.

Чем Джефф занимается сейчас

Сейчас Джефф живёт в Сиэтле, штат Вашингтон, и занимает должность консультанта по безопасности в одной из компаний. Он тестирует системы безопасности и консультирует другие компании, одновременно проводя конференции DEF CON в качестве президента DEF CON Communications, Inc. Он также был техническим консультантом телесериала "Мистер Робот" и до сих пор вкладывает средства в многие стартапы в сфере информационной безопасности.

Заключительные мысли

В мире информационной безопасности такие трудолюбивые и хорошо образованные люди, как Джефф Мосс, большая редкость. Он оказал большое влияние на хакерское сообщество, что привело к большей открытости этого сообщества и возможности его диалога с поставщиками и производителями программного обеспечения. Благодаря конференциям DEF CON и Black Hat развиваются контакты между хакерами и поставщиками ПО. На этих мероприятиях организации получают знания о том, как обезопасить свои инфраструктуры, совместно с независимыми специалистами в области обеспечения безопасности работают над выявлением и устранением угроз безопасности.

Начиная с 2009 года, когда он отправил открытое письмо в Google с предложением перейти на формат HTTPS по умолчанию, и до настоящего времени Джефф является неотъемлемой частью сообщества информационной безопасности.

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

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

Как сказано выше, зародившаяся в США DEF CON проводится уже в Китае, иными словами проблемы информационной безопасности сегодня актуальны для всех людей без исключения, каким бы ни был подход к ИБ в отдельно взятой стране. Это означает, что в ближайшие годы востребованность этичного хакерства будет только расти, причём с ощутимой вероятностью не просто большими, но взрывными темпами. Если вам интересна сфера этичного взлома, то вы можете обратить внимание на наш курс "Этичный хакеp", где студенты на практике получают полное представление о законном взломе, чтобы начать карьеру хакера в белой шляпе.

Узнайте, как прокачаться и в других специальностях или освоить их с нуля:

Другие профессии и курсы
Подробнее..

С чего начинается DevOps и куда он может привести

27.05.2021 10:19:54 | Автор: admin

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

Тому пример Александр Шуляк, который нашел себя именно в Девопсе. Накануне конференции DevOps 2021 мы встретились с Сашей и поговорили о том, как и с чего начался его DevOps, а также к чему он пришел в этой карьере.

Саша, очень приятно с тобой познакомиться. На странице про твой доклад написано, что ты делал и делаешь DevOps в больших и маленьких компаниях. Расскажи, как ты начинал.

И мне тоже очень приятно. В сфере IT я уже больше семи лет. Начинал системным администратором, изучая сети и учась на курсах Cisco. Но мне было интересно и кодить. Я не уходил в глубокую специализацию, просто применял всё, что узнавал в одной области в другой. Например, я хорошо знал, поработав сисадмином, как работают сети и системы. И мог использовать это в своей повседневной работе.

Правда, со временем я всё больше понимал, что ни одна из dev- и ops-областей меня полностью не устраивает. Мне хотелось совместить все эти интересные штуки из разработки и operations вместе. Но тогда я еще не знал, что это возможно в DevOps.

Как ты узнал про DevOps?

В 2016 году в Минске, где я тогда жил, DevOps только набирал обороты, и вакансий в городе было не очень много. Но когда я наткнулся на одну из них, то понял, что это то самое комбо, которое я хотел! И я начал искать именно девопс-вакансии, одновременно изучая видео на ютубе и статьи на хабре, чтобы понимать основы коммерческой разработки и узнать какие-то тонкости.

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

Какие твои навыки тебе тогда потребовались на практике?

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

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

В DevOps пригодятся любые навыки программирования, и начальный язык не так важен, потому что пересесть на профильные python/golang не будет сложным делом.

Что именно нужно уметь кодить DevOps-инженеру?

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

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

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

Shell-скрипты это ведь часть работы в терминале. Что-то еще там нужно уметь?

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

Какие инструменты нужно изучать для мониторинга и сбора логов?

Основные инструменты для сбора метрик сейчас это Prometheus и Grafana. Prometheus это метрик-коллектор (формально time-series database). Как альтернатива мне ещё очень нравится TICK стек на базе InfluxDB. Grafana, в свою очередь, используется для отрисовки красивой инфографики и отправки оповещений.

Для сбора логов в одном месте можно посмотреть Elastic Stack. Он довольно сложный, но дает отличное представление о работе с логами. У него есть бесплатная версия, и этого достаточно, чтобы поиграться с системой и понять, как она работает, из каких компонентов состоит. Альтернативы Elastic Stack Splunk, Datadog. Но это больше enterprise-инструменты, изучать их достаточно сложно.

Что насчет операционных систем? Чем тут заняться, чтобы приблизиться к девопсу?

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

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

У Linux Professional Institute (LPI) есть статьи по работе linux и базовым манипуляциям с системой. Это открытые курсы/уроки, и они хорошо помогут разобраться с работой Linux. А у Роберта Лава (Robert Love) есть отличная, хоть и немного скучная книга Ядро Linux: описание процесса разработки. Помогает быстро уснуть :)

Ещё в изучении Linux вам может сильно помочь Youtube-канал Кирилла Семаева.

Поговорим про сетевую сторону operations. Что нужно уметь делать здесь?

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

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

Расскажи про принципы DevOps. Это что-то as Code. Как они работают?

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

Наверное, самый популярный инструмент управления инфраструктурой (Infrastructure as Code) это Terraform. Его довольно просто изучать, там великолепная документация. И буквально в этом году вышло новое издание книги Евгения Брикмана Terraform. Инфраструктура на уровне кода, которая тоже отлично объясняет, как работать с этим инструментом.

Есть ещё принцип Configuration as Code, который описывает состояние операционной системы. Тут я советую для изучения Ansible. Можно Chef, но выбрать можно любой, так как поняв основной принцип работы одного, переходить на другие инструменты будет несложно.

А Pipeline as Code вообще очень интересная вещь. Так как синтаксис и предоставляемые возможности инструментов очень схожи, то можно спокойно выучить один и пользоваться всеми. С другой стороны, практически всегда построение пайплайнов приводит к shell-скриптам, потому что основного инструмента без его кастомизации в любом случае будет недостаточно.

Оркестрация это тоже необходимый навык?

Да, примерно по тем же причинам, почему мы используем всё as Code. Когда у вас контейнеров больше одного, ими сложно управлять. Для этого и существуют оркестраторы вроде Mesos, Nomad, Openshift, Kubernetes и так далее. Самый популярный, конечно, Kubernetes. Он достаточно сложный для изучения с точки зрения архитектуры и управления, но базовые понятия выучить не проблема. На первых порах этого должно быть достаточно, а остальное придёт с опытом и интересом.

Какие есть особенности у специализации DevOps-инженеров?

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

На практике список обязанностей сильно зависит от размера компании. Где-то могут быть большие команды и несколько DevOps-инженеров, которые отвечают за build продукта, релиз, платформу или безопасность и governance облака.

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

Так я оказался в Лондоне. Сейчас, после полутора лет в Gearset, я Senior SRE в финтех-стартапе Divido. И мой опыт показывает, что в Англии больше верят в узкую специализацию, чем у нас. То есть вам надо знать некоторые предметные области в вашем техническом стеке намного лучше, чем другие. Допустим, если вы Cloud Ops инженер, то у вас будет сильный упор на бизнес-инструменты именно в облаках.

У нас же чаще подразумевается, что человек умеет делать всё.

Твой доклад как раз по этой теме?

Нет, на этот раз я хочу поговорить о тестировании. Многие сомневаются, а нужно ли вообще тестировать. И если надо, то когда начинать, если, например, и так много задач. Особенно если у вас не хватает времени, есть какое-то легаси, да еще и технический долг, который нужно разгребать. Или внезапно продукт вашей компании должен отвечать каким-то требованиям стандартизации и сертификации. Собственно моя история будет схожей с обходными путями тестирования инфраструктуры, когда в лоб не очень получается. Я уверен, что многие сталкивались с похожими проблемами, поэтому мне очень хочется поделиться своим опытом. Тебе нравится выступать?

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

Что ты предпочитаешь, офлайн или онлайн?

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

Какие темы из программы для тебя наиболее актуальны и какие доклады хочешь послушать сам?

Разумеется доклад Дмитрия Столярова, я его большой фанат! :) У него всегда можно узнать что-то новое про кубер, с которым я последние два года очень плотно работаю. А также о теоретической части SRE/DevOps, поскольку мне очень интересно, как выстроены процессы в разных компаниях и как они скрещивают методологии с реальной жизнью.

Еще будет интересно послушать Станислава Миллера про то, какие роли могут быть у DevOps-лид в организации. Я изучаю возможности карьерного роста в сторону менеджерских позиций или солюшн-архитектора, поэтому интересно посмотреть, что скрывается за должностями в больших компаниях. Из чужого опыта еще интересно узнать про то, как подружить разные команды у Дмитрия Сугробова.

Ну и конечно, нас ждет извечно актуальная и холиварная для меня тема про SRE человек-оркестр, потому что никто не знает как обозвать человека со специфичным набором навыков и вообще надо ли :)

Саша, спасибо тебе огромное за подробный разговор. Желаем тебе найти билеты в Россию, чтобы встретиться на конференции!

Спасибо и до встречи!

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

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

Подробнее..

Андрей Когунь зачем развивать IT-сообщество

09.06.2021 16:12:52 | Автор: admin

23 июня DINS проводит бесплатную онлайн-конференцию Java Meeting Point. Наша цель объединить инженеров из разных городов на одной площадке, дать возможность обсудить новые технологии, подходы в разработке и все, что с этим связано. Спикеры конференции инженеры крупных IT-компаний.

Мы решили познакомить вас с людьми, которые выступают на конференции в серии интервью. Наш первый герой Андрей Когунь, ведущий Java Meeting Point, руководитель группы Java-разработчиков в КРОК и основатель jug.msk.ru. Андрей рассказал, почему его вдохновляют митапы, как он успевает совмещать работу и конференции и сложно ли управлять московским сообществом из Кипра.


Расскажи о себе: где ты работаешь, чем занимаешься помимо работы.

Несложно догадаться, что я Java-разработчик, работаю в компании КРОК. Активно занимаюсь разработкой и руковожу частью инженеров. Как руководитель, я не участвую напрямую в развитии бизнеса, я занимаюсь развитием технологий и людей.

Мне повезло моя работа совпадает с интересами. Я организую и провожу встречи jug.msk.ru, участвую в конференциях JUG Ru Group и в мероприятиях КРОК. В сезон успеваю поучаствовать в двух-четырех больших конференциях.

В КРОК силами сотрудников делаем некоммерческие мероприятия. Они происходят в городах, где есть наши центры разработки. Это конференция в Перми, сообщество в Краснодаре и Иркутске. Поддерживаем конференцию в Новосибирске. Еще есть зимняя и летняя школы по разработке для студентов. Это отличная возможность для ребят старших курсов и практику пройти, и одновременно с этим попробовать свои силы в качестве полноценного разработчика.

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

Почему еще ты считаешь важным участвовать в жизни сообщества?

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

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

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

Столько всего: работа, конференции, jug.msk.ru, студенты как ты все успеваешь?

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

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

Сейчас ты не в Москве. Скажи, сложно ли управлять сообществом удаленно? Или после 2020 года стало нормально?

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

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

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

Заключительный вопрос: почему ты решил участвовать в Java Meeting Point?

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

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

Так чаще всего и работает в IT-мире: если предложить человеку что-то интересное, он согласится. У меня есть хорошая история про это. Когда я только начинал, работал в вузе, Oracle, который спонсировал студенческое сообщество, поручил провести Open Software Day. Нужно было найти спикеров, которые расскажут про открытое ПО. На тот момент я знал примерно никого. Я начал гуглить и нашел Дмитрия Завалишина, который делал операционную систему с открытым кодом Фантом. Дмитрия уже в то время называли одним из отцов российского интернета.

Он вел Live Journal, и я ему написал прямо в директ и пригласил в Зеленоград, выступить на нашем митапе. Он сразу откликнулся и приехал к нам. Хотя мы из разных поколений, мы общаемся до сих пор, когда встречаемся на мероприятиях. Я рад, что в IT большинство людей такие.


Регистрация на Java Meeting Point уже открыта на сайте конференции. Присоединяйтесь будет интересно!

Подробнее..

Паша Финкельштейн о Big Data, Apache Spark и DevRel

15.06.2021 10:13:02 | Автор: admin

Паша Финкельштейн разработчик, серийный спикер, автор и ведущий нескольких подкастов. На конференции Java Meeting Point он сделает доклад Spark: let's touch it, на котором познакомит участников с миром больших данных.

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


Расскажи, чем ты занимаешься?

Я Developer Advocate в JetBrains, занимаюсь темой Big Data и дата-инжиниринга. Я пытаюсь рассказывать людям о том, как устроен мир Big Data, что там интересного, какие есть инструменты.

О чем будет твой доклад на Java Meeting Point?

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

Кому будет полезно посмотреть доклад?

Полезно будет Java или JVM-разработчикам ровня Middle+ и тем, кому интересно узнать, как работает Apache Spark. Мы научимся писать простенькие пайплайны на этом фреймворке. Станет понятно как, например, взять и написать пайплайн обработки данных на Apache Spark или проанализировать данные в датасете.

Ты много занимаешься DevRel-активностями: выступаешь с докладами, вел подкасты. Как ты начал этим заниматься?

Мой друг Слава Семушин уехал работать в Чехию. Я не особенно умею поддерживать отношения на расстоянии, но Слава очень классный, с ним хотелось продолжать общаться. Однажды он написал: Слушай, давай запишем подкаст. Решили попробовать, и так родился подкаст Паша+Слава.

Раз в пару недель мы созванивались и говорили на околотехнические темы. Потом к нам присоединился еще один Слава Артемьев, с которым я работал в компании Домклик. Очень удобно не пришлось менять название подкаста. Так возникла моя первая публичность.

Потом появилась идея выступить на сцене, и я сделал доклад на Joker. В последствии этот доклад я переделывал 3 раза и выступил с ним 14 раз.

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

Можешь посоветовать, как научиться так же быстро готовить выступления?

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

Что должно быть в хорошем докладе?

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

Альтернативный вариант, это если доклад полностью теоретический. На такой люди придут вывернуть мозги. Так тоже можно, но сложно. Я один раз сделал доклад про внутренности Kotlin, людям не зашло.

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

Какой формат будет у твоего доклада на Java Meeting Point?

Это будет демо, на котором Java или JVM-разработчик на примере не очень больших данных сможет посмотреть, как работают большие. Мы посмотрим 5-6 слайдов и перейдем к программированию.

Подробнее..

Дмитрий Александров Мы не знали, во что ввязываемся

17.06.2021 20:21:19 | Автор: admin

Дмитрий Александров инженер Oracle, Java Champion, участник и организатор многих IT-мероприятий. На Java Meeting Point 23 июня он расскажет про преимущества фреймворка Helidon, над которым работает.

Мы поговорили с Дмитрием и узнали, чем он поделится с участниками Java Meeting Point, каким был его путь в программировании и как он с товарищами организовал конференцию на 450 человек без опыта в крупных ивентах.


Расскажи, как ты начал заниматься программированием?

Я всегда любил кодить и занимался этим практически всю свою сознательную (может, даже и бессознательную) жизнь. Мне было лет 8 или 9, когда я начал. У моего поколения была такая штука Роботландия на 286-ых компьютерах. Можно было делать нехитрые задачки. И еще на этих же компах был установлен бейсик я в классе 6-м уже писал какие-то простые программы.

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

Потом у меня был собственный стартап, который я успешно продал. Там была чистая Java, и это было своего рода счастье, потому что я сам выбирал, с чем работать. Но в этом проекте приходилось кодить по 12 часов в день, и в таком режиме выгораешь жестко. Только я решил отдохнуть, как меня срекрутили в T-Systems, и через неделю после выхода на работу я уже был в командировке в Германии. Перерыв получился всего в 4 дня.

Сейчас я работаю на Oracle. Работаю над замечательным опенсорсным фреймворком, который называется Helidon.

О нем и пойдет речь на Java Meeting Point, верно? Расскажи подробнее, о чем будет доклад.

На конференции я расскажу, что такое Helidon, и почему микросервисы стоит писать на нем. Дело в том, что большинство фреймворков, которые сейчас используются, как правило, обросли легаси, и чтобы их саппортить, нужно много стараться. А у нас все новенькое и модульное, Java 11+, много фишек, которые не все себе могут позволить, потому что у них есть как раз это легаси. А у нас его нет, поэтому у нас все круто.

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

У Helidon есть большое преимущество это опенсорс. У нас лицензия Apache 2.0, а значит, все могут контрибьютить в проект. Это не реклама, а побуждение к тому, чтобы влиться в сообщество.

Ты много делаешь, чтобы развивать IT-сообщество: выступаешь сам, организуешь митапы и конференцию JPrime в Болгарии. Как ты стал спикером и организатором мероприятий?

Я выбрал для себя роль спикера, потому что очень боялся разговаривать на публике. Чтобы побороть этот страх, я просто начал выступать. Сначала собирался с друзьями, ребятами, которые тоже посещали IT-конференции, мы делали доклады друг для друга. У нас в Софии тогда было полумертвое коммьюнити, нас всего пять человек было.

Потом задумались о создании собственной конференции. По принципу, мы не знали, что это невозможно, мы взяли и сделали это. Написали основным игрокам в нашем регионе, что хотим организовать такое мероприятие, а через полтора дня они все к нам пришли с кучей денег и сказали: Делайте!

Мы даже не знали на тот момент, во что ввязываемся. Мы все кодили по 8-10 часов в день, и организация конференции стала дополнительной полноценной работой. Тем не менее, деньги нам дали в феврале, а в мае мы уже провели однодневную конференцию на 450 человек. После чего мы продолжили развиваться, к нам подтянулись известные спикеры, и до ковида мы уже провели двухдневное мероприятие на 1000 участников. Причем на него не только компании для сотрудников покупали билеты, но и просто отдельные люди. Но мы ничего на этом не зарабатываем: наша цель формировать коммьюнити.

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

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

Здорово! Это похоже на то, что мы делаем в DINS: все наши мероприятия бесплатные и преследуют одну цель дать инженерам возможность для обмена знаниями и опытом. А что еще тебе нравится в этой деятельности?

Мне нравится этим заниматься, потому что я знакомлюсь с интересными людьми. Здесь нет материального интереса, главное, что я встречаю самых крутых программистов в мире. Я могу многому у них научиться, могу напрямую задавать вопросы это очень ценно.

Приходите на Java Meeting Point 23 июня, чтобы услышать доклад Дмитрия. Регистрация открыта на сайте конференции.

Подробнее..

Реактивное программирование из первых рук

18.06.2021 18:20:53 | Автор: admin

Василий Прокофьев разработчик Usetech в Рязани. На Java Meeting Point он расскажет о своем опыте использования реактивного программирования.

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


На Java Meeting Point ты расскажешь о реактивном программировании. Расскажи, почему ты выбрал именно такую тему?

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

Я приготовил примеры кода, на которых покажу разные тонкости реактивного программирования. Старался доклад подготовить так, чтобы понятно было каждому нужны только базовые знания функционального программирования, Java Core и Java 8.

Чему научатся участники конференции после твоего доклада?

Участники познакомятся с реактивным программированием на Java, научатся базовым навыкам работы с Рroject Reactor, а также разберутся с базовыми методами библиотеки.

Почему ты заинтересовался реактивным программированием?

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

Когда я только начинал вливаться в эту тему, читал, как сделать сервер для Minecraft на домашнем слабеньком компьютере. И получалось, если делать его стандартным способом, с помощью синхронного программирования, на сервер могли зайти 4 человека. При реактивном подходе 1,5 тыс. человек могли спокойно работать на этом сервере, и еще куча ресурсов оставалась на компьютере.

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

В каких проектах нужно реактивное программирование?

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

Присоединяйтесь к конференции регистрация открыта на сайте.

Подробнее..

От одного приложения к сотне. Путь микрофронтенда в Тинькофф Бизнес

16.06.2021 12:16:05 | Автор: admin

Привет, меня зовут Ваня, недавно я выступил на CodeFest 11, где рассказал про путь Тинькофф Бизнеса на фронтенде от одного приложения к сотне. Но так как в ИT очень быстро все меняется, а ждать запись еще долго, сейчас я тезисно расскажу о нашем шестилетнем путешествии в дивный мир микрофронтенда!

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

Этапы развития

  1. Одно приложение на AngularJS в 20142015 годах.

  2. Миграция на Angular2.

  3. Утяжеление десяти приложений новой функциональностью.

  4. Переход к микросервисам и разбиение на 100 приложений.

На дворе начало 2015 года. К нам приходит бизнес и говорит: Мы хотим сделать зарплатный проект! Посмотрите, что есть сейчас на рынке по технологиям, и сделайте. Выбираем AngularJS, быстро создаем приложение. Спустя некоторое время аппетиты вырастают, мы создаем еще два сервиса. На этот момент фронтенд-приложения никак не взаимодействуют друг с другом.

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

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

В одном из проектов у нас было пять фронтенд-команд, в каждой по 35 человек, то есть в самый лучший момент в одном проекте работали 25 фронтендеров! Иногда было действительно больно: ты вот-вот замержишь свою задачку, но нет! Перед тобой кто-то успевает и все твои пайплайны начинают проходить заново! До сих пор мне не по себе от этих воспоминаний.

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

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

Сайдбар

Первые три приложения мы подружили между собой с помощью сайдбара.

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

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

Подсвеченная область отдельное приложение СайдбарПодсвеченная область отдельное приложение Сайдбар

Frame Manager

Именно рваные переходы мы убрали с появлением Frame Manager'а (далее буду называть его ФМ).

Подсвеченная область отдельное приложение Frame ManagerПодсвеченная область отдельное приложение Frame Manager

В отличие от сайдбара, который встраивался в приложение с помощью iframe, ФМ находился на странице всегда и сам встраивал в себя приложения.

Слева концепция сайдбара (было), справа Frame Manager'а (стало)Слева концепция сайдбара (было), справа Frame Manager'а (стало)

Для клиента ФМ так же не заметен, как и сайдбар, но для нас он выполняет уже больше функций. Кроме рейтинга, списка продуктов и авторизации он может передавать состояние между приложениями, например через глобальный window. Пользователь больше не замечает, что ходит между несколькими отдельными приложениями, так как верхняя часть у него никуда не пропадает и визуально весь процесс выглядит как подгрузка контента на одну страницу.

В плане интеграции приложения тоже все поменялось:

  • Раньше приложению-клиенту достаточно было подключить необходимый скрипт к себе в index.html.

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

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

Однажды через поддержку к нам обратились пользователи с ситуацией: Раньше у меня работал плагин для Google Chrome, а с недавнего времени именно на вашем сайте перестал. Почините, пожалуйста! Обычно на такие просьбы не реагируют: пользователь что-то себе установил пусть сам и разбирается. Но только не в нашей компании. Команда долго изучала вопрос, смотрела, какое окружение у клиента, версия браузера и все-все, но ответа так и не было. В итоге мы полностью повторили окружение, загрузили себе плагины и путем дебагинга установили, что данный плагин не работает, если у iframe динамически менять атрибут src или пересоздавать фрейм. К сожалению, мы так и не смогли исправить такое поведение, поскольку на этой концепции построено все взаимодействие ФМ и дочерних приложений.

Бесфрейм-менеджер

Однажды мы собрались и подумали: Несколько лет страдаем от iframe. Как перестать страдать? Давайте просто уберем его! Сказано сделано. Так и появился бесфрейм-менеджер с фантазией у нас, конечно, не фонтан ;-)

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

В решении три составляющие:

  1. Webpack-плагин основа нашего решения, подробнее о которой можно прочитать в статье Игоря.

  2. Angular builder обвязка для настройки и запуска плагина.

  3. Angular schematics скрипт для упрощения работы с файловой структурой с помощью AST.

В 2021 году плагин становится менее актуальным, потому что вышел Webpack 5 с Module Federation, но напомню, что мы вели разработку в 2018 году, а Angular стал поддерживать последнюю версию вебпака лишь с двенадцатой версии, которая вышла 12 мая 2021 года. Мы пока не уверены, сможет ли MF заменить наше решение, и изучаем комбинацию подходов.

Что же касается других решений, на которые можно было перейти для отказа от iframe, то это Single SPA. Он всем хорош и очень популярен, но в плане Angular есть небольшой дисклеймер.

http://personeltest.ru/aways/single-spa.js.org/docs/ecosystem-angular/https://single-spa.js.org/docs/ecosystem-angular/

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

Что же касается Angular builder и schematics, то они нужны, чтобы разработчики, которые будут интегрировать наше решение к себе, не выполняли километровую инструкцию, а просто написали в консоли:

ng update @scripts/deframing

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

Тестирование

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

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

  2. Сам ФМ определяет несколько жизненно важных процессов, работоспособность которых гарантирует при любых условиях: это авторизация, роутинг, работа с данными приложений. Для этого создаются приложения-стабы (stub), суть которых подключиться к ФМу и выполнить одну из вышеперечисленных функций. То есть на каждое изменение кодовой базы ФМа будет гарантированно работать эта функция.

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

Накопление стилей пользователь гуляет между приложениями, и у него накапливается состояние. Допустим, один из разработчиков написал:

.my-pretty-header {    display: none;}

Если у кого-то из следующих приложений есть такое же название класса, этот стиль применится так же!

Пример: диалог решил спрятаться под меню, чтобы пользователь не догадался, что от него требуется:

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

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

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

Microzord

Вот мы и прошли шесть лет технического развития нашего решения. И что может быть лучше, чем поделиться этим опытом с сообществом? Все наработки будут публиковаться под npm scope @microzord с открытым кодом на Гитхабе.

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

Подробнее..

Анонс эфира live-coding на SwiftUI

11.06.2021 12:20:14 | Автор: admin

Приглашаем на эфир live-coding на SwiftUI. Реализуем фичу для опенсорсного проекта StackOv, который написан полностью на SwiftUI. Обсудим, почему использовать некоторые системные View при работе со SwiftUI не всегда удачная идея. Посмотрим, как можно сделать по-другому. Эфир состоится 24 июня, четверг, в 18:30 мск.

РЕГИСТРАЦИЯ

В формате live-coding напишем облако тегов для опенсорсного проекта StackOv. Это мобильный клиент для Stackoverflow, сделанный полностью на SwiftUI.

Реализовать фичу облака тегов в SwiftUI можно двумя способами:

очевидным и не совсем правильным,

неочевидным, но почти правильным (почему почти узнаете во время эфира).

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

Кейс переиспользуемый, поэтому будет интересен всем, кто работает со SwiftUI, и не только для того, чтобы реализовать конкретную фичу с облаком тегов.

Ведущие:

Гриша Бернгардт, iOS Lead Surf

Влад Климов,iOS разработчик Surf

Как попасть на эфир

24 июня, четверг. Начнём в 18:30 мск, планируем закончить примерно в 20:00. Трансляция на YouTube-канале Surf.

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

До встречи!

РЕГИСТРАЦИЯ

Подробнее..

PHP-Compiler, или ныряем в кроличью нору FFI

17.06.2021 14:15:17 | Автор: admin

Однажды Энтони Феррара (Anthony Ferrara) решил скомпилировать PHP в низкоуровневый код, но результат получился слабым. Главной проблемой, с которой он столкнулся, было отсутствие подходящего бэкенда. К лучшему все изменилось после того, как в дело вступил FFI.

Я советую прочитать статью A PHP Compiler, aka The FFI Rabbit Hole, перевод который вы найдёте под катом.

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

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

Виды компиляторов

Существуют три основных способа выполнения программ.

  • Интерпретация: подавляющее большинство динамических языков (например, PHP, Python (CPython), Ruby и т. д.) можно интерпретировать с помощью какой-либо виртуальной машины.

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

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

  • Компиляция: значительная часть языков, которые мы считаем статическими, компилируется заранее (ahead of time, AOT) прямо в нативный машинный код. Многие языки (C, Go, Rust и т. д.) используют AOT-компилятор.

Суть AOT в том, что вся компиляция происходит целиком до выполнения кода. Это значит, что вы сначала компилируете код и через некоторое время выполняете его.

Основное преимущество AOT-компиляциигенерация очень эффективного кода, а главный недостатокдлительность компиляции.

  • Just In Time (JIT): JIT относительно недавно стал популярным методом, благодаря которому можно взять лучшее от виртуальной машины и AOT. Многие языки программированияLua, Java, JavaScript, Python через интерпретатор PyPy, HHVM, PHP 8 и прочиеиспользуют JIT.

В сущности, JITпросто сочетание виртуальной машины и AOT-компилятора. Вместо того, чтобы компилировать всю программу за раз, он выполняет какую-то часть кода на виртуальной машине. Такая компиляция преследует две цели:

1) выяснить, какие части кода горячие, а значит, наиболее полезны для компиляции в машинный код;

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

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

Главный плюс JIT-компиляции в том, что в некоторых сценариях использования она объединяет скорость развертывания виртуальной машины с производительностью, характерной для AOT. Это невероятно сложный процесс, так как нужно собрать два полнофункциональных компилятора и интерфейс между ними.

Подытожим:

  • интерпретатор выполняет код;

  • AOT-компилятор генерирует машинный код, который потом выполняет компьютер;

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

Немного объяснений

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

  • Компилятор: значение термина компилятор зависит от контекста.

Если мы говорим о сборке рантаймов языков программирования (эти рантаймы тоже называют компиляторами), то компиляторпрограмма, которая преобразовывает код из одного языка в другой с отличной от него семантикой. Это не просто иное представление кодакод именно преобразовывают. Примеры такого преобразования: из PHP в опкоды, из C в промежуточное представление, из ассемблера или регулярного выражения в машинный код. Да, в версии PHP 7.0 есть компилятор, который компилирует исходный код языка PHP в опкоды.

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

Да уж, запутано...

  • Виртуальная машина (VM): я упомянул выше, что виртуальная машинагигантский switch в цикле. Чтобы понять, почему ее называют виртуальной, давайте немного поговорим о том, как работает настоящий физический CPU.

Настоящая машина выполняет команды, закодированные в нули и единицы. Эти команды можно представить как код ассемблера:

Этот код просто добавляет 1 к регистру rsi, затем добавляет к нему 2.

Посмотрите, как та же операция представлена в опкодах PHP:

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

Разница в том, что команды ассемблера очень низкоуровневые, и их сравнительно немного, в то время как в команды опкода виртуальной машины PHP встроено больше логики. В примере команда ассемблера incq ожидает аргумент в виде целого числа. С другой стороны, опкод POST_INC содержит всю логику, необходимую для того, чтобы сначала преобразовать аргумент в целое число. В виртуальной машине PHP гораздо больше логики, что в свою очередь:

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

б) становится главной причиной того, что интерпретируемые языки часто используют VM.

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

  • Дерево абстрактного синтаксиса (Abstract Syntax Tree, AST): ASTвнутренняя структура данных, которая представляет исходный код программы в виде дерева. Таким образом, вместо $a = $b + $c; получаем что-то вроде Assign($a, Add($b, $c)). Главная характеристика деревау каждого узла только один родитель. PHP выполняет внутреннее преобразование исходного файла в AST перед компиляцией в опкоды.

Если дан следующий код:

то можно ожидать, что AST будет выглядеть так:

  • Граф потока управления (control flow graph, CFG): CFG во многом похож на AST, но если у первого может быть несколько корневых элементов, то у второго только один. Это можно объяснить так: CFG включает в себя связи между циклами и т. п., так что можно увидеть все возможные пути управления, проходящие через весь код. Расширение Opcache Optimizer для PHP использует внутри CFG.

Если дан следующий код:

то можно ожидать, что CFG будет выглядеть так:

В этом случае longцелое число PHP, numericцелое число или число с плавающей запятой, jumpzпереход к другой команде в зависимости от того, равна ли bool_21 0 или нет.

Заметьте, можно увидеть, как именно исполняется код. По этой же причине компилятор использует CFG, но вместо образа оперирует структурой данных.

  • Промежуточное представление (Intermediary Representation, IR): IRязык программирования, который полностью живет в компиляторе. Вы никогда не будете писать на этом языке, его для вас генерируют. Тем не менее, стоит отметить, что IR нужен для некоторых манипуляций компилятора (например, для реализации оптимизаций), а также для того, чтобы компоненты компилятора были разделены (в итоге их легче настраивать). Вышеупомянутые структуры AST и CFGформы IR.

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

Я впервые попытался выполнить PHP поверх PHP в рамках проекта PHPPHP еще в 2013 году. Суть проекта состояла в том, чтобы перевести исходный код из репозитория php-src с языка C на PHP. Не было и речи о том, что виртуальная машина будет работать быстро (слово быстро в кавычках, так как эта машина примерно в 200 раз медленнее, чем PHP, и нет никакого способа ее разогнать). Я просто развлекался, мне нравилось экспериментировать и учиться чему-то новому и интересному.

Полтора года спустя я создал набор инструментов Recki-CT, который работал по иной схеме. Вместо того, чтоб реанимировать прошлую попыткуPHP в PHP, я создал многоступенчатый компилятор. Он парсил PHP в AST, преобразовывал AST в CFG, проводил оптимизацию, затем выдавал код через бэкенд. Для этой задачи я собрал два начальных бэкенда: один компилировал код в расширение PECL, а второй использовал расширение JitFu для непосредственного выполнения кода, оперативно компилировал его и запускал в виде нативного машинного кода. Эта реализация работала довольно неплохо, но была мало применима на практике по ряду причин.

Несколько лет спустя я снова вернулся к этой идее, но решил не создавать единый монолитный проект, а заняться серией взаимосвязанных проектов по парсингу и анализу PHP. В рамках этих проектов были реализованы следующие инструменты: PHP-CFGпарсинг CFG, PHP-Typesсистема вывода типов, PHP-Optimizerбазовый набор оптимизаций поверх CFG. Я разработал эти инструменты для того, чтобы встроить их в другие проекты для различных целей (например, Tuliранняя версия статического анализатора кода PHP). В проекте PHP-Compiler я пытался компилировать PHP в низкоуровневый код, но результат получился слабым.

Главной проблемой, с которой я столкнулся при создании полезного низкоуровневого компилятора, было наличие (точнее отсутствие) подходящего бэкенда. Библиотека libjit (используемая расширением JitFu) работала хорошо и быстро, но не могла генерировать бинарники. Я мог бы написать расширение на C, привязанное к LLVM (HHVM использовала инфраструктуру LLVM и многие другие), но это ОЧЕНЬ трудозатратный процесс. Я не захотел идти этим путем и отложил эти проекты до лучших времен.

В игру вступают PHP 7.4 и FFI

Нет, версия PHP 7.4 еще не вышла (Пост был опубликован в 22 апреля 2019 года). Возможно, она будет выпущена через полгода. Несколько месяцев назад небольшое предложение по включению расширения FFI в PHP успешно прошло голосование. Я решил поиграть с этим расширением, чтобы узнать, как оно работает.

Спустя некоторое время я вспомнил о своих проектах, связанных с компиляторами. Я стал думать, насколько сложно будет загрузить libjit в PHP, но затем сообразил, что эта библиотека не может генерировать исполняемые файлы. Я начал искать возможные варианты решения проблемы и наткнулся на библиотеку libgccjit. Так началось мое путешествие по кроличьей норе.

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

FFIMe

Мой первый шагсоздание обертки над libgccjit. FFI требует заголовочный файл, похожий на C, но сам не может обрабатывать макросы препроцессора C. Непонятно? Ок, просто знайте, что у каждой библиотеки есть по крайней мере один заголовочный файл, который описывает функции, и FFI нужна его сокращенная версия.

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

Встречайте FFIMe.

Для начала мне был нужен препроцессор языка С для компиляции заголовочных файлов в форму, достаточную для FFI. Я приступил к работе и примерно месяц спустя понял, что мне нужно большее. Я не мог просто обработать заголовки, их нужно было распарсить. После существенного рефакторинга кода FFIMe теперь может генерировать вспомогательные классы для использования с FFI. Не без недостатков, конечно, но для моих задач достаточно.

По сути, FFIMe получает путь к Shared Object File и к директивам #include. Он парсит получившийся С, убирает несовместимый с FFI код и затем генерирует класс. Хорошо, МНОГО классов. Теперь сгенерированный файл можно рассмотреть (файл из примера выше на GitHub).

Если вы посмотрите на этот файл, то увидите ОГРОМНОЕ количество кодапочти 5000 строк. Он включает в себя все числовые #define заголовков C как константы класса, все ENUM как константы класса, а также все функции и классы-обертки всех базовых типов C. Файл также рекурсивно содержит все другие заголовки (поэтому у заголовка выше есть некоторые на первый взгляд лишние файловые функции).

Код использовать весьма просто. Примечание: не обращайте внимание на то, что делает библиотека, просто смотрите на типы и на вызовы, затем сравните с эквивалентным кодом на C:

Теперь можно работать с библиотеками C в PHP как будто бы они в C! Ура!

Стоит отметить, что, несмотря на некоторые недоработки FFI, которые позже были исправлены, работать с ним довольно просто. Неплохая альтернатива погружению в дебри PHP (кхе-кхе). Дмитрий Стоговавтор FFI для PHPпроделал великолепную работу.

PHP-CParser

Сделав рефакторинг FFIMe, я решил собрать полнофункциональный C parser. Он работает так же, как PHPParser разработчика Никиты Попова, но не в PHP, а в C.

Пока поддерживается не весь синтаксис C, но PHP-CParser использует стандартную грамматику C, так что теоретически он способен парсить все без исключения.

В начале препроцессор C обрабатывает заголовочные файлыон резолвит все стандартные директивы, такие как #include, #define, #ifdef и т. д. Потом PHP-CParser парсит код в AST (по мотивам CLANG).

Таким образом, например, следующий код C:

и includes_and_typedefs.h:

даст такой AST:

Синие именаимена классов объектов, а красные имена в нижнем регистреимена свойств указанных объектов. Так, внешний объект здесьPHPCParser\Node\TranslationUnitDecl с массивом свойств declarations. И так далее...

Очень редко кому-то надо парсить код C в PHP, поэтому я полагаю, что эту библиотеку будут использовать только с FFIMe. Но если вы захотите ее использоватьвперед!

PHP-Compiler

Я вернулся к проекту PHP-Compiler и начал работу над ним. В этот раз я добавил несколько этапов к компилятору. Я решил не компилировать непосредственно из CFG в нативный код, а применить Virtual Machine interpreter (именно так и работает PHP). Это ГОРАЗДО более зрелый подход, чем тот, который я использовал в PHPPHP. Я не остановился на этом и создал компилятор, который может брать опкоды виртуальной машины и генерировать нативный машинный код. Это позволило применить как JIT-компиляцию (Just In Time), так и AOT-компиляцию (Ahead of Time). Таким образом, я могу не только запускать код или компилировать его во время запуска, но и предоставить компилятору кодовую базу для того, чтобы он сгенерировал файл машинного кода.

Это означает, что со временем я смогу (сейчастеоретически) компилировать сам компилятор в нативный код, что может в перспективе прилично ускорить работу интерпретатора (не знаю, будет ли он работать так же шустро, как PHP 7, но я надеюсь на это). Если же стадия компиляции будет быстрой, то есть шанс не просто реализовать PHP в PHP, а делать это с максимальной скоростью.

Я начал собирать PHP-Compiler поверх libgccjit и получил весьма интересные результаты. Простой набор бенчмарков, взятых из пакета PHP, показывает, что хотя сейчас и есть МНОГО накладных расходов, скомпилированный код может быть действительно блестящим.

Следующие тесты сравнивают производительность PHP-Compiler, PHP 7.4 с OPcache (Zend Optimizer) и без него, а также экспериментального JIT (в включенном и выключенном состоянии) для PHP 8.

Заметен ощутимый простой при старте (помните, это PHP!). Однако компиляция кода (как в режиме JIT, так и в режиме AOT) происходит значительно быстрее, чем в PHP 8 с JIT-компиляцией в особо сложных вариантах использования.

Стоит отметить, что мы сравниваем совершенно разные вещи. Не стоит ожидать такие же показатели в продакшен-проектах, но по ним можно сделать вывод о перспективности такого подхода...

Сейчас можно использовать эти 4 команды:

  • php bin/vm.phpзапустить код в виртуальной машине;

  • php bin/jit.phpкомпилировать весь код, затем запустить его;

  • php bin/compile.phpкомпилировать весь код и вывести файл a.o;

  • php bin/print.phpкомпилировать и вывести CFG и сгенерированные опкоды (полезно для отладки).

В командной строке все работает как PHP:

Да, здесь echo "Hello World\n"; работает как нативный машинный код. Перебор? Определенно. Прикольно? Однозначно!

Подробности в описании проекта.

Я приостановил сборку, потому что не знал, стоит ли и дальше использовать libgccjit или лучше перейти на LLVM?

Есть только один способ выяснить это...

PHP-Compiler-Toolkit

Как вы уже поняли, я не умею давать названия вещам...

PHP-Compiler-Toolkitуровень абстракции поверх libjit, libgccjit и LLVM.

Вы просто встраиваете код, похожий на код языка C, в кастомное промежуточное представление через нативный интерфейс PHP. Например, это выражение (обратите внимание, что long long 64-битное целое число, как и тип PHP int):

можно использовать так:

Это описывает код. Отсюда можно передать контекст бэкенду для компиляции:

и потом просто получить в ответ:

Вот мы и получили чистый нативный код.

Теперь я могу собрать фронтенд (PHP-Compiler) поверх этой абстракции и менять бэкенды для тестирования.

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

Хотя все бэкенды и имеют сравнимые показатели в рантайме, продолжительность компиляции для libgccjit зашкаливает. Хм, может я был прав, когда думал перейти на LLVM?..

Да, и для такой простой функции накладные расходы FFI весьма значительные. На запуск этого же кода в PHP уходит примерно 0,02524 секунды.

Чтобы продемонстрировать, что PHP-Compiler может в перспективе работать гораздо быстрее, чем PHP, представьте себе такой бенчмарк:

В нативном PHP запуск этого кода миллион раз займет примерно 2,5 секунды. Не то чтобы медленно, но и не супер быстро. Однако с PHP-Compiler мы видим следующее:

В этом искусственном примере можно увидеть десятикратный прирост производительности по сравнению с нативным PHP 7.4.

Вы можете посмотреть этот пример и скомпилированный код в examples folder of php-compiler-toolkit.

PHP-LLVM

После проекта PHP-Compiler-Toolkit я начал работу над PHP-LLVM. Эксперименты с Toolkit показали, что у libgccjit нет реальных преимуществ перед LLVM, у которой есть преимущества в производительности и функциональности, поэтому я решил перевести PHP-Compiler исключительно на нее.

Я не стал обращаться непосредственно к LLVM C-API, а написал обертку над ним. Я преследовал две цели:

1) я получаю более объектно-ориентированный API, так как, чтобы получить тип значения, пишу $value->typeOf(), а не LLVMGetType($value);

2) с оберткой я могу не обращать внимание на различия в версиях LLVM.

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

PHP-ELF-SymbolResolver

Стоит отметить, что в LLVM были ошибки, поэтому мне нужно было видеть, какие символы на самом деле компилируются в LLVM.Таким образом, я хотел проверить общий файл объекта (.so), который содержит скомпилированную библиотеку LLVM. Для этого я написал PHP-ELF-SymbolResolver, который парсит файлы формата ELF и показывает объявленные символы.

По определенным причинам я сомневаюсь, что этот проект будет востребован вне FFIMe, но, возможно, кому-то будет нужно декодировать нативную библиотеку ОС в PHP. В таком случае вы знаете, где взять библиотеку!

Использование макросов

Портируя PHP-Compiler на PHP-LLVM, я понял, что генерация кода с использованием API как билдера быстро становится многословной. Код невозможно прочитать. Например, возьмем сравнительно простую встроенную функцию __string__alloc, которая определяет новую внутреннюю структуру строки. Если использовать API как билдер, то она будет выглядеть примерно так:

Просто куча мусора. Трудно понять что-либо, а если какую-то часть кода и можно прочитать, то с ней очень сложно работать).

Чтобы избежать такого результата, я написал систему макросов с помощью PreProcess.ioиYay. Теперь тот же код выглядит так:

Читать код стало гораздо легче. Это смесь синтаксиса C и PHP, заточенная под нужды PHP-Compiler.

Язык макросов частично задокументирован на GitHub-е.

Подробности о применении макросов смотрите на src/macros.yay (GitHub).

Беспокоитесь о производительности? Правильно делаете. На обработку файлов нужно время (примерно одна секунда на файл). Есть два способа борьбы с этим:

1) предварительная обработка возможна только при установке PHP-Compiler с dev-зависимостями с помощью композера, иначе будут загружены только скомпилированные файлы PHP;

2) предварительная обработка произойдет на лету только при изменении файла .pre, даже с dev-зависимостями.

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

Запуск

Сначала установите PHP 7.4 с включенным расширением FFI. Насколько мне известно, эта версия PHP еще не вышла (и до того, как выйдет, пройдет еще немало времени).

Запуск FFIMe:

Объявите FFIMe dev-зависимостью композера ("ircmaxell/ffime": "dev-master") и запустите генератор кода через файл стиля rebuild.php. Например, файл rebuild.php, используемый PHP-Compiler-Toolkit, выглядит так:

Потом сравните сгенерированные файлы. Я предлагаю включать сгенерированные файлы через композер с ключевым словом files, а не загружать их автоматически, потому что композер сгенерирует ОГРОМНОЕ количество классов в один файл.

Замените строку "...so.0" путем к общей библиотеке, которую вы хотите загрузить, и файл .h заголовками, которые нужно парсить (можно много раз вписать ->include()).

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

Запуск PHP-Compiler нативным образом

Сейчас PHP-Compiler работает нестабильно, что-то может ломаться, поэтому сначала установите зависимости (можно использовать LLVM 4.0, 7, 8 и 9).

После окончания установки просто запустите их.

Вы можете задать выполнение в командной строке, используя аргумент -r:

Еще можно задать файл:

При компиляции bin/compile.php также можно задать выходной файл с -o (по умолчанию будет перезаписан исходный файл без расширения .php). Для системы будет сгенерирован готовый к выполнению бинарник:

Или по умолчанию:

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

Запуск PHP-Compiler с Docker

Удобства ради я опубликовал два docker-образа для PHP-Compiler. Оба основаны на старой версии Ubuntu (16.04) из-за некоторых проблем с PHP-C-Parser, до которых у меня не дошли руки. Но вы можете скачать их и поиграть с ними:

  • Ircmaxell/php-compiler:16.04полнофункциональный компилятор, полностью установленный и сконфигурированный со всем необходимым для его запуска;

  • Ircmaxell/php-compiler:16.04-devтолько dev-зависимости. Контейнер предназначен для работы с вашей собственной сборкой PHP-Compiler, чтобы вы могли разрабатывать его в стабильной среде.

Для запуска кода:

Код будет по умолчанию запущен с bin/jit.php. Если вы хотите запустить код с другой точки входа, то ее можно изменить:

Да, и если вы хотите передать скомпилированный код, то можно расширить docker-файл. Например:

Во время запуска сборки docker код будет скомпилирован в index.php, а файл машинного кода будет сгенерирован в /app/index. Затем этот бинарник будет выполнен при запуске docker run ..... Обратите внимание: контейнер не предназначен для продакшена, так как в нем много лишнего, это просто демонстрация работы.

Что дальше

Теперь, когда PHP-Compiler поддерживает LLVM, можно продолжать работу по расширению поддержки языка. Еще многое предстоит сделать:например, массивы, объекты, нетипизированные переменные, обработку ошибок, стандартную библиотеку и т. д.). Хе-хе. В PHP-CFG и PHP-Types также есть, чем заняться: поддержкой исключений и ссылок, исправлением пары ошибок и многим другим.

Да, нужны тесты. Много тестов. И тестировщики. Пробуйте, ломайтеэто легко, обещаю. И создавайте ишью.

Протестируете?

PHP Russia 2021пройдет28 июнявМосква, Radisson Slavyanskaya. Но уже сейчас можно ознакомиться срасписаниеми присмотреть доклады, которые вы точно не захотите пропустить.

А еще вы можете выбрать формат участия: онлайн или офлайн. Не забудьтекупить билетыуже сегодня!

На всех наших офлайн площадках мы соблюдаем антиковидные меры:

1. Все сотрудники конференции сдают тест ПЦР и ходят в масках.

2. Участникам выдаём комплект медицинских масок и санитайзеры.

3. Во всех помещениях конференции и в фойе работают мощные рециркуляторы воздуха.

4. Каждый микрофон мы протираем спиртовыми салфетками, прежде чем передать его участнику.

5. В зоне кофебрейков и обедов соблюдаются нормы социальной дистанции.

Подробнее..

Митап Инженер заходит в бар Dev-to-Teamlead

28.05.2021 08:05:31 | Автор: admin

3июня, 15:00 МСК, онлайн.
Регистрация https://miro-event.timepad.ru/event/1650491/

Эксперты

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

Тема

В рамках серии митапов "Инженер заходит в бар" продолжаем исследовать траектории профессионального развития разработчиков. На этот раз поговорим про переход из инженера в руководителя команды.

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

Ты соглашаешься и начинается: проводишь больше времени на митингах, чем за написанием кода; нужно делатьperformance review, 1-to-1 и прочую психологию с социологией; мысленно примеряешь на себя стереотип "Был хороший разработчик, стал плохой руководитель".

На митапе поговорим с ребятами, кто был в такой ситуации и как-то справился.

Обсудим:

  • момент перехода что было самое сложное и что помогло преодолеть;

  • отложенные сложности какие были проблемы по мере накопления тимлидского опыта;

  • следующие шаги после тимлидства кто куда пошёл дальше, почему именно туда.

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

Серия "Инженер заходит в бар"

Мы делаем митапы для тех, кто умеет программировать и столкнулся с осознанием, что IT не только про программирование. Кроме кода есть люди, с которыми нужно договариваться. Есть сверхскоростные темпы изменения технологий и рынка. Нужно постоянно учиться новому. Есть желание делать нужное. "Инженер заходит в бар" митапы для тех, кто задумывается о процессах в IT, независимо от своей роли.

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

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

Все выпуски серии.

Организаторы

Мы инженеры изMiroи DevRel-бюро Долгушев и Сторожилов. Мы много общаемся с разными IT-компаниями и видим, насколько по-разному все отвечают на схожие вопросы. Нам интересно разобраться, увидеть систему (или её отсутствие) и обсудить всё это с другими инженерами. Ну и просто поговорить с интересными людьми об их опыте.

Регистрация https://miro-event.timepad.ru/event/1650491/

Подробнее..

Digital-мероприятия в Москве c 31 мая по 6 июня

31.05.2021 10:13:24 | Автор: admin

Подборка мероприятий на неделю


image


Tech Week 2021


  • 01 июня (вторник) 03 июня (четверг)
  • Технопарк Сколково
  • от 27 000 р.
  • Как малому, среднему и крупному бизнесу развиваться в беспрецедентных условиях обсудят лидеры из технологичных компаний на ежегодной конференции по внедрению цифровых технологий в бизнес Tech Week 2021

MeetUP место JAVA в мире современной разработки


  • 02 июня (среда)
  • онлайн
  • бесплатно
  • Мы поговорим с Java-разработчиком Ростелеком и преподавателем курса Разработка на Java в Nordic IT School Романом Болобаном, который поделится личным опытом, расскажет о своем пути Java-разработчика, как он пришел в профессию и что необходимо сейчас, с его точки зрения, начинающим. Поговорим о языке JAVA, современных тенденциях и сферах применения.

Конференция для руководителей Формула Бизнеса: руководство к действию


  • 02 июня (среда)
  • онлайн
  • бесплатно
  • Вопросы, которые задает каждый руководитель. Как контролировать свой отдел продаж? Как сделать выполнение задач прозрачным и мотивировать команду на удаленке? Как быть примером результативного руководителя?
    Найдите ответы на вопросы в кругу других руководителей Москвы 2 июня. Регистрируйтесь на бесплатную онлайн-конференцию Формула бизнеса: руководство к действию https://bit.ly/3ycJOka
    Что вас ждет на конференции:
    -Руководство, как сегодня быстро выявлять потребности клиентов;
    -Алгоритм по внедрению новых подходов к мотивации сотрудников;
    -Чек-лист по формированию сильного бренда предпринимателя в онлайне;
    -План по поиску и подбору эффективных сотрудников для работы на удаленке.
    Вы встретитесь с такими экспертами как:
    • Владимир Маринович, бизнес-ангел;
    • Александра Седова, руководитель партнерского отдела 1С-Битрикс;
    • Евгений Жигилий, бизнес-тренер и другие.
      От каждого спикера вы получите 0 теории. Вместо этого практический опыт, конкретные чек-листы и инструкции.
      Переходите по ссылке и регистрируйтесь сейчас
      https://bit.ly/3ycJOka

Хакатон Tech monsters night


  • 04 июня (пятница) 05 июня (суббота)
  • онлайн
  • бесплатно
  • Участвуйте в битве Tech monsters night от М.ВидеоЭльдорадо, решите задачи конкурса лучше и быстрее других и получите шанс обладать одним из тридцати крутых призов, оригинальным мерчем и должностью в компании.
Подробнее..

Биометрия, персонализация голоса, NLU и речевая аналитика о чем расскажут на конференции Conversations

05.06.2021 12:14:00 | Автор: admin

21 и 22 июня в Питере (и онлайн) пройдет конференция по разговорному ИИ Conversations. Поток для разработчиков будет посвящен conversational lego технологиям вокруг разговорного AI, из которых состоят чат-боты, голосовые ассистенты и диалоговые решения. Персонализация голоса от Yandex Speechkit, стратегия управления диалогом от DeepPavlov, платформа речевой аналитики Тинькофф Банка, голосовая биометрия от SberDevices, анализ и разметка интентов при создании голосовых ботов от X5 Retail Group и другие тулзы рассказываем, с чем еще можно познакомиться на Conversations V.

Доклад про лайфхаки разговорного UI на Conversations'19: как сделать бота и не разозлить пользователяДоклад про лайфхаки разговорного UI на Conversations'19: как сделать бота и не разозлить пользователя

Конференция будет проходить два дня Business Day (21 июня) и Technology Day (22 июня). Онлайн-билет дает доступ к двухдневному стриму!

Technology Day откроет секция Conversational Lego, посвященная технологиям, которые лежат в основе различных разговорных решений от чат-ботов с NLU до прокачанных голосовых ассистентов.

Кто выступит и о чем расскажут?

  • Поиск смысла в океане данных: анализ и разметка интентов при создании голосовых ботов. Антон Кленицкий, X5 Retail Group

  • Голос бренда. Зачем нужны технологии персонализации голоса и как они устроены. Никита Ткачев, Yandex.Cloud

  • Биометрический бум: как технологии помогают нам в повседневной жизни. Станислав Милых, SberDevices

  • Стратегия управления диалогом: как сделать чат-бота более умным и объемным с помощью дискурс-менеджмента. Данила Корнев, CPO, DeepPavlov

  • Особенности алгоритмов распознавания речи и их влияние на опыт пользователей. Николай Шмырев, CEO, АЦ Технологии

  • Как спроектировать диалоговый интерфейс для мультилингвальных ботов. Brielle Nickoloff, Cofounder & Head of Product, Botmock.

Больше имен и тем на сайте Conversations!

Еще разработчиков в Technology Day ждет секция по голосовым ассистентам, где Яндекс, SberDevices, Mail.Ru Group расскажут о новых фичах Алисы, Маруси и семейства Салют. Например, Алексей Фивинцев из Mail.ru покажет, какой профит можно извлечь из разработки голосовых навыков для Маруси, используя интеграцию Маруси с ВКонтакте.

А на секции Partners in AI: как заработать на разговорных решениях расскажут, как разработчику стать предпринимателем, как придумать и монетизировать сценарии для различных бизнес-задач и индустрий.

В общем, будет много интересного! Один билет в стрим два дня экспертизы, доступ к приложению для нетворкинга и всем материалам конференции. За новостями можно следить в официальномтелеграм-канале Conversations.

Подробнее..

Digital-мероприятия в Москве c 7 по 13 июня

07.06.2021 10:04:02 | Автор: admin

Подборка мероприятий на неделю
image


ML Party


  • 08 июня (вторник)
  • онлайн
  • бесплатно
  • ML Party регулярные встречи о самых разных применениях машинного обучения в IT. Подборка тем ближайшей встречи ещё раз подчёркивает это разнообразие.

DevDays Moscow 2021 HYBRID EDITION


  • 08 июня (вторник) 10 июня (четверг)
  • онлайн
  • от 24 000 р.
  • DevDays Moscow конференция по разработке программного обеспечения, на которой соберутся всемирно признанные докладчики и разработчики для того, чтобы побудить в вас стремление к совершенству и инновациям, для освещения передовых технологий и новых практик в комьюнити разработчиков ПО.

Demo Day Перезагрузка


  • 08 июня (вторник)
  • онлайн
  • бесплатно
  • 8 июня на Demo Day Перезагрузка выпускники CROC Product Partner представят 15 инновационных продуктов и сервисов для ритейла, банков, страховых, маркетинга, бэк-офиса и других сегментов. Это молодые ИТ-компании, которые прошли подготовку с экспертами и трекерами КРОК, и теперь готовы перевернуть рынок своими решениями

DIGITAL ENTERPRISE: Цифровые процессы


  • 09 июня (среда) 10 июня (четверг)
  • онлайн
  • бесплатно
  • Конференция DIGITAL ENTERPRISE: Цифровые процессы ориентирована на руководителей крупнейших предприятий и корпораций, имеющих опыт или стремящихся повысить эффективность производственных и бизнес-процессов с помощью цифры.

EcomExpo`21


  • 09 июня (среда) 10 июня (четверг)
  • Краснопресненская наб 14
  • бесплатно
  • Крупнейшая выставка технологий для интернет торговли и retail

Онлайн-конференция Новинки рекламных технологий


  • 09 июня (среда)
  • онлайн
  • бесплатно
  • Хотите узнать о новинках facebook-рекламы?
    Татьяна Субботина, менеджер по развитию бизнеса Aitarget One, выступит на онлайн-конференции Новинки рекламных технологий. Татьяна расскажет какое будущее ждет рекламодателей и как повысить эффективность интернет-рекламы. Участников также ждут доклады от представителей Google, Яндекс, Mail.ru Group, ВКонтакте и Alytics. Участие будет полезно директорам по маркетингу, маркетологам и специалистам по рекламе.
    Регистрируйтесь и подключайтесь, чтобы быть в курсе новинок рекламных технологий!

Demo Day MUIV.LAB презентации стартапов и нетворкинг


  • 10 июня (четверг)
  • Новорогожская 19с1
  • бесплатно
  • 10 июня проидет Demo Day бизнес-акселератора МУ им. С.Ю.Витте MUIV.LAB для технологических стартапов в офлаин-формате.
    В финале выступят самые сильные проекты из 96 стартапов, подавших заявку на участие. В течение 3 месяцев 19 резидентов Акселератора, прошедших отбор, осваивали образовательную и трекерскую программы, получали серьезную и глубокую экспертизу от успешных предпринимателеи и экспертов технологических компании.
    На Demo Day MUIV.LAB финалисты презентуют свои проекты в направлениях: робототехника, логистика транспортных потоков на основе Big Data и инфраструктуры умного города, EdTech, MedTech, BioTech и Entertainment.
    О результатах работы за период прохождения программы акселератора MUIV.LAB стартапы расскажут в ходе питч-сессии, а инвесторы и заказчики смогут обсудить с ними дальнеишее сотрудничество. Moscow seed fund выберет победителя, который получит грант в 300 тысяч рублей.
    Приглашаются эксперты, инвесторы, представители корпорации, игроки венчурного рынка, проекты, которые планируют проити отбор в следующии сезон акселератора и все, кому интересны инновационные стартапы.

Я.Железо: поднимаем Wi-Fi и Bluetooth


  • 10 июня (четверг)
  • онлайн
  • бесплатно
  • Юрий Тимофеев, разработчик из команды прикладного софта, и Андрей Заостровных, специалист по беспроводным технологиям из hardware-команды, расскажут всё самое необходимое о технологиях беспроводной передачи данных и о том, как настроить и применить их для решения реальных задач.

MIXR Конференция для AR\VR профессионалов


  • 10 июня (четверг)
  • Берсеневская наб 6с3
  • от 990 р.
  • Конференция создана профессионалами для профессионалов как площадка обмена знаниями и опытом выхода на глобальные рынки и создания конкурентных XR-продуктов

Хакатон Moscow City Hack


  • 11 июня (пятница) 14 июня (понедельник)
  • онлайн
  • бесплатно
  • Moscow City Hack это 125 команд, 5 крутых задач и 3 миллиона в призовом фонде: 2 миллиона рублей денежного приза и 1 миллион рублей в качестве грантов на образовательные продукты. А также отличный шанс прокачать свои hard & soft skills, найти единомышленников, обменяться опытом, получить приглашение на работу и стать частью уникального комьюнити со всей страны.
Подробнее..

ИТ-сообщества в разных компаниях видео и презентации докладов с онлайн-митапа

07.06.2021 16:20:09 | Автор: admin

Привет Хабр! Мы выложили на YouTube видеозаписи докладов митапа ИТ-сообщества в разных компаниях 21 апреля. В онлайн-формате эксперты ИТ-кластера Ростелекома, а также наши коллеги из Альфа-Банка, Fleetcor, Райффайзенбанка рассказали, как создавать и развивать профессиональные сообщества в ИТ-компаниях.

Пропустили мероприятие? Делимся главными тезисами докладов, а ещё видео и презентациями спикеров. В хронолическом порядке.

#1 Делаем сложное возможным Татьяна Егорова(Ростелеком)

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

Скачать презентацию

#2 Что сотрудники могут изменить под эгидой Гильдии развития ИТ Полина Самсонова (Ростелеком)

В Ростелекоме действует ещё одно профессиональное комьюнити гильдия развития ИТ. Её создатель Полина Самсонова активный генератор и реализатор идеи объединения сотрудников в круги рассказывает о том, как объединять неравнодушных коллег в сообщества, которые меняют процессы в компании на длинной дистанции.

Скачать презентацию

#3 Рабочие группы и их вклад в развитие системного анализа Алексей Лобзов (Альфа-Банк)

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

Скачать презентацию

#4 Карьерные диалоги Наталья Пешкова (Райффайзенбанк)

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

Скачать презентацию

#5 Внутренние обучения как способ повышения экспертизы сотрудников Анастасия Груздева и Светлана Михеева (Альфа-Банк)

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

Скачать презентацию

#6 Эти неловкие вопросы про комьюнити Татьяна Такташева (Fleetcor)

Резюмирующий доклад митапа в формате глупых вопросов:
- Как организовать комьюнити?
- Как найти ЦА?
- Какую периодичность встреч выбрать?

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

Скачать презентацию

Вместо заключения

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

Полную видеозапись митапа смотрите на YouTube по ссылке.

Подробнее..

Самое важное с keynote-презентации WWDC21

07.06.2021 22:20:16 | Автор: admin

Сегодня стартует ежегодная конференция для разработчиков Apple WWDC, и по традиции она начинается в анонсов обновлений операционных систем для продуктов компании.

Выжимка самого важного из того, что объявили во время keynote-презентации в этом материале.

iOS 15

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

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

Также в FaceTime будет встроен портретный режим, размывающих фон за вами.

Одно из нововведений Facetime link. Это ссылки, позволяющие вести расписание ваших звонков, и делиться ими не только с владельцами iPhone, но и с пользователями Android через веб-браузер.

SharePlay позволяет слушать музыку, смотреть фильмы или просто расшарить экран вместе с другими людьми в звонке, при этом любой человек может остановить или возобновить воспроизведение медиафайла. При этом участники звонка смогут и переписываются одновременно с просмотром фильма или подслушиванием музыки. Функция будет поддерживаться множеством приложений, таких как HBOMax, Twich, TikTok, Disney+ и другими.

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

Новая функция Shared with you дает возможность закрепить то, что вам присылают в iMessage, и что вы хотели бы посмотреть это позже.

Уведомления тоже получили редизайн и теперь делятся по степени важности: при помощи ИИ производится их сортировка и выводится саммари.

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

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

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

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

В Wallet появилась возможность добавить транспортные карты различных городов, а также ключи от всего, что можно открыть электронным ключом: от вашего дома до автомобиля и номера в отеле. Кроме того, теперь в Walllet можно добавить ваше ID с персональными данными, отсканировал водительские права. Такое ID будет действовать, например, в аэропортах.

В приложении Погоды, помимо редизайна, появилось полноэкранное отображение прогноза погоды на карте в местах поблизости от вас.

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

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

AirPods и Apple Music

AirPods Pro теперь смогут фокусироваться и усиливать голос говорящего рядом человека и тем самым работать как слуховой аппарат.

Siri сможет зачитывать важные уведомления через наушники.

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

Добавлено пространственное звучание на всех девайсах и на tvOS.

iPadOS 15

Переработаны виджеты: теперь их можно размещать где угодно, а не только в центре уведомлений.

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

Многозадачность тоже улучшили: теперь активное приложение можно сдвинуть в сторону, чтобы открыть другое на экране Домой. Кроме того, теперь их можно опускать вниз, как в Windows или Mac, чтобы затем между ними быстро переключаться.

В Заметках появились упоминания и тэги.

Появилась функция Быстрых заметок для записи важной информации. Они будут собираться в отдельном хабе, и их можно создавать как на iPadOS, так и MacOS.

Также для iPad появится и приложение Перевода с функцией автоперевода любого текста, в том числе рукописного или с фотографий.

С помощью Swift Playgrounds теперь на iPad можно писать собственные приложения для iPhone и iPad.

Конфиденциальность, Siri и iCloud

Появилась защита конфиденциальности в Почте, которая может скрывать ваш IP-адрес или местоположение, а также время открытия письма. Также ваш IP не смогут отслеживать и трекеры в Safari.

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

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

Два улучшения iCloud: восстановление доступа к вашему аккаунту при помощи устройств доверенных людей, которым будет приходить код доступа к вашему девайсу.

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

Еще одна функция скрытие электронного адреса, а также встроенная поддержка HomeKit Secure Video.

Здоровье

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

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

watchOS 8

Обновленное приложение медитаций, возможность отслеживать изменения дыхания во сне и новый циферблат с 3D-портретами из фотографий, снятых на iPhone в обновленной системе watchOS 8. А также обновленное приложение для просмотра снимков, более похожее на таковое в смартфонах, и улучшенный набор текста с возможностью удаления слов и редактирования.

Умный дом

Теперь Apple TV сможет открывать ссылки на сериалы и фильмы, которые присылают пользователю в сообщениях.

HomePod mini можно будет использовать как динамики для телевизора.

В Apple TV+ появятся профили пользователей с возможностью отслеживать прогресс по просмотру сериалов.

Обновление получит и приложение Дом для Apple Watch. Теперь с его помощью можно будет следить за глазком и еще быстрее управлять функциями дома. А камеры смогут присылать пользователю уведомления о полученной посылке.

macOS Monterey

MacOS, как и iOS, тоже получит поддержку SharePlay для совместного просмотра фильмов, а также обновленные Сообщения, Фокусировку и Заметки.

Новая функциональность Universal Control, позволяющая управлять iPad и Mac с помощью одних и тех же клавиатуры и мыши. Так, если iPad поставить рядом с MacBook, курсор сможет автоматически перейти на экран планшета. Это относится как к управлению мышью, так и тачпадом. Таким образом можно переносить файлы с устройства на устройство или, например, использовать iMac в качестве динамиков для iPhone.

Теперь пользователи смогут создавать быстрые сценарии для ежедневных задач и при помощи Shortcuts на Mac. Пока еще будет действовать и Automator, так что переход будет производиться постепенно, в течение нескольких лет.

Новый дизайн для Safari как на Mac, так и на iPad и iPhone. На Mac теперь строка браузера расположена прямо внутри вкладки. На iPhone они теперь находятся снизу и исчезают при чтении. Вкладки же, в свою очередь, можно собирать в группы и таким образом пересылать по почте.

Технологии для разработчиков

Представлены новые API для изоляции голоса, Focus и SharePlay, а также функции для сканирования 3D-объектов для последующего переноса в AR.

Язык Swift упростит создание параллельных процессов, сократив количество необходимого кода.

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

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

TestFlight появится на Mac, и его закрытый тест начнется сразу на WWDC.


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

Подробнее..

Xcode Cloud, SharePlay, Focus самое важное с Keynote WWDC21

08.06.2021 00:14:55 | Автор: admin

Сегодня стартует ежегодная конференция разработчиков Apple WWDC, и по традиции она начинается в анонсов обновлений операционных систем для продуктов компании.

Выжимка самого важного из того, что объявили во время keynote-презентации в этом материале.

iOS 15

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

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

Также в FaceTime будет встроен портретный режим, размывающих фон за вами.

Одно из нововведений Facetime link. Это ссылки, позволяющие вести расписание ваших звонков, и делиться ими не только с владельцами iPhone, но и с пользователями Android через веб-браузер.

SharePlay позволяет слушать музыку, смотреть фильмы или просто расшарить экран вместе с другими людьми в звонке, при этом любой человек может остановить или возобновить воспроизведение медиафайла. При этом участники звонка смогут и переписываются одновременно с просмотром фильма или подслушиванием музыки. Функция будет поддерживаться множеством приложений, таких как HBOMax, Twich, TikTok, Disney+ и другими.

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

Новая функция Shared with you дает возможность закрепить то, что вам присылают в iMessage, и что вы хотели бы посмотреть это позже.

Уведомления тоже получили редизайн и теперь делятся по степени важности: при помощи ИИ производится их сортировка и выводится саммари.

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

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

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

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

В Wallet появилась возможность добавить транспортные карты различных городов, а также ключи от всего, что можно открыть электронным ключом: от вашего дома до автомобиля и номера в отеле, то есть, появилась поддержка CarKey и умных замков с UWB. Кроме того, теперь в Walllet можно добавить ваше ID с персональными данными, отсканировал водительские права. Такое ID будет действовать, например, в аэропортах.

В приложении Погоды, помимо редизайна, появилось полноэкранное отображение прогноза погоды на карте в местах поблизости от вас.

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

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

AirPods и Apple Music

AirPods Pro теперь смогут фокусироваться и усиливать голос говорящего рядом человека и тем самым работать как слуховой аппарат.

Siri сможет зачитывать важные уведомления через наушники.

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

Добавлено пространственное звучание на всех девайсах и на tvOS.

iPadOS 15

Переработаны виджеты: теперь их можно размещать и на экране Домой, а не только в центре уведомлений.

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

Многозадачность тоже улучшили: теперь активное приложение можно сдвинуть в сторону, чтобы открыть другое на экране Домой. Кроме того, теперь их можно опускать вниз, как в Windows или Mac, чтобы затем между ними быстро переключаться. Улучшен SplitView для работы с несколькими приложениями одновременно.

В Заметках появились упоминания и тэги.

Появилась функция Быстрых заметок для записи важной информации. Они будут собираться в отдельном хабе, и их можно создавать как на iPadOS, так и MacOS.

Также для iPad появится и приложение Перевода с функцией автоперевода любого текста, в том числе рукописного или с фотографий.

С помощью Swift Playgrounds теперь на iPad можно писать собственные приложения для iPhone и iPad.

Конфиденциальность, Siri и iCloud

Появилась защита конфиденциальности в Почте, которая может скрывать ваш IP-адрес или местоположение, а также время открытия письма. Также ваш IP не смогут отслеживать и трекеры в Safari.

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

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

Два улучшения iCloud: восстановление доступа к вашему аккаунту при помощи устройств доверенных людей, которым будет приходить код доступа к вашему девайсу.

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

Еще одна функция скрытие электронного адреса, а также встроенная поддержка HomeKit Secure Video.

Здоровье

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

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

Новая функция трендов-уведомлений обо всех изменениях в параметрах (режиме дня, количестве движения за день и т.д.), собираемых в приложении Здоровья.

watchOS 8

Обновленное приложение медитаций, возможность отслеживать изменения дыхания во сне и новый циферблат с 3D-портретами из фотографий, снятых на iPhone в обновленной системе watchOS 8. А также обновленное приложение для просмотра снимков, более похожее на таковое в смартфонах, и улучшенный набор текста с возможностью удаления слов и редактирования.

Появится нового стандарта умных устройств Matter, позволяющих сделать все устройства независимыми друг от друга.

Умный дом

Теперь Apple TV сможет открывать ссылки на сериалы и фильмы, которые присылают пользователю в сообщениях.

HomePod mini можно будет использовать как динамики для телевизора.

В Apple TV+ появятся профили пользователей с возможностью отслеживать прогресс по просмотру сериалов.

Обновление получит и приложение Дом для Apple Watch. Теперь с его помощью можно будет следить за глазком и еще быстрее управлять функциями дома. А камеры смогут присылать пользователю уведомления о полученной посылке.

macOS Monterey

MacOS, как и iOS, тоже получит поддержку SharePlay для совместного просмотра фильмов, а также обновленные Сообщения, Фокусировку и Заметки.

Новая функциональность Universal Control, позволяющая управлять iPad и Mac с помощью одних и тех же клавиатуры и мыши. Так, если iPad поставить рядом с MacBook, курсор сможет автоматически перейти на экран планшета. Это относится как к управлению мышью, так и тачпадом. Таким образом можно переносить файлы с устройства на устройство или, например, использовать iMac в качестве динамиков для iPhone.

Теперь пользователи смогут создавать быстрые сценарии для ежедневных задач и при помощи Shortcuts на Mac. Пока еще будет действовать и Automator, так что переход будет производиться постепенно, в течение нескольких лет.

Новый дизайн для Safari как на Mac, так и на iPad и iPhone. На Mac теперь строка браузера расположена прямо внутри вкладки. На iPhone они теперь находятся снизу и исчезают при чтении. Вкладки же, в свою очередь, можно собирать в группы и таким образом пересылать по почте.

Новинки для разработчиков

Представлены новые API для изоляции голоса, Focus и SharePlay, а также функции для сканирования 3D-объектов для последующего переноса в AR.

Язык Swift упростит создание параллельных процессов, сократив количество необходимого кода.

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

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

TestFlight появится на Mac, и его закрытый тест начнется уже на WWDC.


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

Подробнее..

Digital-мероприятия в Москве c 14 по 20 июня

14.06.2021 10:08:37 | Автор: admin

Подборка мероприятий на неделю


image


Blockchain Z-Days 2021


  • 14 июня (понедельник) 17 июня (четверг)
  • онлайн
  • бесплатно
  • Blockchain Z-Days 2021 это глобальная онлайн-конференция, которую организовывает сообщество IT-профессионалов. Участники смогут присоединиться к более чем 20 докладам о прогрессивных технологиях, которые базируются на знаниях и реальным опыте спикеров.

Hydra 2021


  • 15 июня (вторник) 18 июня (пятница)
  • онлайн
  • от 10 000 р.
  • Конференция по разработке параллельных и распределенных систем Hydra 2021 15-18 июня.
    Вас будет ждать 4 дня докладов обо всем, что касается работы в этой сфере.

.Net Кухня


  • 15 июня (вторник) 17 июня (четверг)
  • онлайн
  • бесплатно
  • Приглашаем тех, кто работает в .NET или интересуется этой сферой, в гости на .NET-кухню. вместе с эксперами из ижевского EPAM будем разбираться в ингредиентах, миксовать компоненты, узнавать лайфхаки, чтобы было вкусно!

Как освоить методологию создания новых продуктов и поиска точек роста


  • 15 июня (вторник)
  • Мясницкая 13с18
  • бесплатно
  • Мероприятие будет полезно лидерам бизнес-подразделений, продакт-менеджерам, project-менеджерам, agile-коучам, скрам-мастерам, консультантам.

Online LoGeek Night: QA Automation


  • 17 июня (четверг)
  • онлайн
  • бесплатно
  • На митапе специалисты компании Luxoft в области QA Automation поделятся своим опытом и расскажут о минусах и плюсах двух способов хранения тестовых данных с примерами на Java. А также раскроют тему автоматизации высокоуровневого тестирования ПО максимального уровня безопасности для авионики.

DevOps MeetUp


  • 17 июня (четверг)
  • Университетская 7
  • бесплатно
  • В четверг 17 июня собираемся в Иннополисе, чтобы вместе со спикерами из Provectus и Skyeng узнать все про GitOps и Deploy. Также будет организована онлайн-трансляция.
    Спикеры:
    Рустам Гимадиев, Senior DevOps Engineer из Provectus, расскажет, как построить инфраструктуру так, чтобы любой с доступом в Git мог внести изменения и получить актуальное состояние, поговорим про kubernetes, terraform и argocd/flux/tektoncd.

Online Frontend meetup


  • 17 июня (четверг)
  • онлайн
  • бесплатно
  • Спикеры
    -Иван Соловьев, Teamlead Evrone Как полюбить Snowpack
    Расскажу почему стоит использовать Snowpack, как я дошёл до этого и на какие грабли напоролся.
    -Борзунов Игорь, Frontend-разработчик, Росбанк В жизни вашего проекта не хватает WebGL
    В данном выступлении я хочу показать то, как на наших с вами глазах видоизменяется веб, а именно в сторону WebGL.

Хакатон INNOHACK 2.0


  • 18 июня (пятница) 20 июня (воскресенье)
  • онлайн
  • бесплатно
  • ГК Иннотех объявляет о старте регистрации на второй онлайн хакатон INNOHACK 2.0 с общим призовым фондом 1 200 000 рублей.
Подробнее..

23 июня, 1900 онлайн-митап QAчественное общение

15.06.2021 14:10:21 | Автор: admin

Привет!

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

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

Меняется лишь состав спикеров и обсуждаемые вопросы. Вот они:

19:05 19:35, Контрактное тестирование Rest API

Семен Ковалев, старший специалист по тестированию, Альфа-Банк

Семен расскажет отом, что такое контрактное тестирование, иразберет простой пример контрактного теста наPostman.

19:35 20:05, Структурированный подход к организации тестов

Анна Сотниченко, специалист по тестированию, Альфа-Банк

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

20:05-20:35, Построение модели Onboarding в QA

Иван Боклач, руководитель группы тестирования,Альфа-Банк

Подключайтесь, будет интересно.

Подробнее..

Книги, которые повлияли на меня как на разработчика и управленца

18.06.2021 12:04:53 | Автор: admin

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

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

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

Практика

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

Specification by Example

Книга понравилась мне настолько, что побудила написать первую статью на Хабре. Гойко Аджич автор книги сам описывает ее как книгу о разработке ПО без единой строчки кода. Ее фокус находится на пересечении управления требованиями, проектного менеджмента, DevOps и тестирования (в том числе автоматизированного). Если DevOps часто описывают как infrastructure as code, то Specification by Example это своего рода requirements as code. Проработав некоторое время в корпоративном сегменте индустрии любой разработчик рано или поздно узнает о том, насколько неполными, неточными, противоречивыми и устаревшими бывают требования и насколько сложно, долго и дорого бывает переделывать программы, написанные по таким требованиям. Существуют тяжелые методы борьбы с этим недугом. Например ГОСТ 34 до сих пор используется в госсекторе, несмотря на то, что он безнадежно устарел.

Specification by Example гораздо более гибкая и менее формальная техника, позволяющая, впрочем, заказчику и исполнителю говорить на одном языке, понятном обоим. Кроме того, ГОСТы описывают форму проектной документации, но не дают конкретных советов по проектному управлению и никак не поощряют коммуникацию и совместную работу по улучшению требований и нахождению лучших (более быстрых, качественных и дешевых) способов решения проблем. Примеры переформулированных требований из книги гарантированно не оставят вас равнодушными. Техникой контрольных примеров мы пользуемся уже восемь лет, и она позволяет экономить какое-то невероятное количество времени и избегать недопониманий.

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

Event Storming

Это даже не книга, а своего рода комикс. Если вы любите стикеры, доски и kanban, то event storming скорее всего тоже зайдет. Со временем мы пришли к тому, что большинство web-проектов сразу создаем на основе CQRS-архитектуры, даже если на старте хранилище данных всего одно. Это позволяет по мере развития проектов независимо оптимизировать стеки чтения и записи. И в момент, когда запросы к БД становятся уже совершенно безобразными, воткнуть очередь с денормализоваными хранилищами.

Подробно о всех преимуществах CQRS перед классической n-layer- и onion-архитектурой я рассказывал в докладе Быстрорастворимое проектирование.

Причем здесь Event Storming? Это техника специфицирования в терминах DDD, CQRS и Event Sourcing в форме увлекательной игры со стикерами, фломастерами и доской (доска может быть физической или виртуальной, но с физической гораздо веселее). С точки зрения наглядности, метод не успевает за Activity и BPMN-диаграммами. Но он гораздо более легковесный и прост в освоении и понимании.

Impact Mapping

И снова книга Гойко Аджича. Часть идей в ней пересекается со Specification by Example, но у книг разные целевые аудитории. Spec by Example лучше подойдет для разработчиков, архитекторов, тестировщиков, аналитиков и менеджеров среднего звена. Impact Mapping инструмент, в первую очередь, для бизнеса: владельцев продукта (или даже компании), маркетинга и топ-менеджмента. Spec by Example лишь поощряет общение с целью поиска оптимальных решений. Impact Mapping это формальный процесс для стратегического планирования. Его можно использовать не только в разработке ПО, но и для стратегического планирования, в целом. Например, в этом году мы использовали Impact Mapping для приоритизации и планирования задач в HR.

Теория + практика

Теоретически-практические книжки чуть более сложные. Я бы рекомендовал начать с DDD это очень холиварная тема! Возможно, DDD это не то, что вам нужно на этапе создания стартапа, но попробуйте обратить внимание не на технические аспекты, а на высокоуровневые паттерны. На то, как DDD предлагает общаться с экспертами, выделять главное, и на то, что продукт порой важнее используемых технологий. Если вам это зайдет, то дальше начнется протоптанная другими тропа: DDD -> CQRS -> Event Sourcing. Чаще всего все эти три темы обсуждаются в одном комьюнити. Как только вы разберетесь, что собой представляет каждая из концепций, вы поймете почему.

Немного особняком стоит книга Скотта Влашина про DDD в мире функционального программирования. Во-первых, ФП в изложении Влашина это не сложно. Обратите на книгу внимание хотя бы поэтому. Во-вторых, даже если в ближайшие десятилетия вы не собираетесь никуда сворачивать с тропинки объектно-ориентированного программирования, изучение других способов решения знакомых проблем может быть точкой роста. Я большой фанат гипотезы лингвистической относительности (и фильма Прибытие удачно выигрывающего эту гипотезу). В каком-то смысле знание языков программирования может влиять на ваше мировоззрение также, как знание естественных языков.

Теория

Факты и заблуждения профессионального программирования

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

Мифический человеко-месяц

Книга Фредерика Брукса, несмотря на то, что ей уже 100500 лет, и вы можете встретить в тексте что-то про перфокарты, это фундаментальный труд. Закон Брукса никуда не делся и, кажется, не денется. Понимание этого закона (девять матерей не родят дитя за один месяц) поможет принимать критические и зачастую контринтуитивные управленческие решения. Юбилейное издание включает в себя статью Серебряной пули нет, с которой тоже не грех ознакомиться всем и каждому.

Сколько стоит программный продукт

Большинство знает другую книгу МакКонела Совершенный код. Для кого-то она даже стала своеобразной Библией программирования. Если вы уже программируете хорошо и хотите научиться лучше оценивать трудозатраты на разработку, прочтите Software Estimation: Demystifying the Black Art (Сколько стоит программный продукт; в оригинале название звучит точнее, не находите?:). Книжка сложная, со статистикой, но ничего лучшего об оценке я не видел. Гарантирую, качество оценки тех, кто использует методы и советы из книги, многократно превосходит качество оценки тех, кто делает это по наитию.

Лютая теория и даже философия

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

Цель. Процесс непрерывного улучшения

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

На этом мой список книг подходит к концу. Выбирайте полезные для себя и enjoy!

TechLead Conf 2021 конференция, полностью посвященная инженерным процессам и практикам откроет свои двери уже совсем скоро: 30 июня и 1 июля она пройдет в Radisson Slavyanskaya (Москва).Расписаниеуже готово.Билетыв продаже. А ещё у нас открытдоступк докладам TechLead Conf 2020.

До встречи в офлайне!

Подробнее..

Конференции нового времени рассказываем о гибридном формате

20.06.2021 12:09:43 | Автор: admin

Ковидные времена, наверное, ударили по всем. Но кроме очевидных последствий пандемия смогла принести и кое-что хорошее: многие из нас научились жить в новом времени и в новом формате. Например, нашли новые фишки для удаленной работы, по-новому оценили онлайн-мероприятия, стали иначе распределять время. Мы, в Онтико тоже не теряли времени зря, и придумали новый формат для проведения конференций.

В этом году уже три конференции (TeamLead Conf 2021, HighLoad++ Весна 2021 и DevOpsConf 2021) прошли в гибридном формате. Было интересно, полезно, необычно и продуктивно. Сегодня мы расскажем тем, кто еще не успел оценить нововведения лично, о том, в чем они состоят.

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

Что нового в онлайне?

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

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

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

За лучшие вопросы, заданные в любом формате (офлайн или онлайн), мы дарим книги от наших партнеров. А потом пересылаем их в любую точку мира.

Что нового офлайн?

Главное достоинство офлайн-участия, которое вы так цените нетворкинг.

И мы делаем все для того, чтобы это было не просто супер, а еще и супер-безопасно в нынешние непростые времена.

  • Все сотрудники конференции сдают тест ПЦР и ходят в масках.

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

  • Во всех помещениях конференции и в фойе работают мощные рециркуляторы воздуха.

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

  • Каждый микрофон мы протираем спиртовыми салфетками, прежде чем передать его участнику.

  • В зоне кофебрейков и обедов соблюдаются нормы социальной дистанции.

Следующие конференции пройдут уже совсем скоро. PHP Russia 2021 состоится 28 июня в московской Radisson Slavyanskaya. А 30 июня и 1 июля откроет свои двери TechLead Conf 2021 конференция, полностью посвященная инженерным процессам и практикам.

Мы будем рады видеть вас и в онлайне, и офлайн. Выбирайте свой формат участия, присматривайте классные доклады. И до встречи!

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru