Изолированные (sealed) типы, switch-выражения и типы record. Это лишь несколько из новых фич, появившихся в последнем выпуске Groovy 4.0. В этом видео я хочу показать вам десять вещей, которые делают Groovy 4.0 удивительным. Чтобы не делать его слишком затянутым, мы не станем глубоко погружаться в каждую из них. Вместо этого я намерен дать вам краткий обзор новых возможностей.
Новости
Хаос инженерия в Kubernetes с использованием Litmus
Привет, Хабр! На связи Рустем, IBM Senior DevOps Engineer & Integration Architect. Сегодня я хотел бы поговорить о хаос-инженерии в Kubernetes, и поможет нам с этим Litmus.
9 шагов к employee-friendly среде в IT
Одной из основных целей современного HR в компании является создание и развитие комфортной рабочей среды для сотрудников — говоря иначе, такой внутренней корпоративной среды, которая была бы благоприятной для всех сотрудников, или employee-friendly среды. Employee-friendly среда позволяет компании как формировать ее привлекательный и продающий образ на рынке труда для привлечения новых сотрудников, так и создавать эффективный инструмент удержания текущих сотрудников и борьбы с их выгоранием. Замечу, что и увольнение и выгорание сотрудника являются событиями, которые существенно влияют на результаты работы компании.
В рамках данной статьи предлагаю рассмотреть основные шаги, с которых стоит начать создание employee-friendly среды в IT-команде (конечно, если это позволяет политика компании).
33 питона: зоопарк позиций, которые требуют знания python
В прошлом году передо мной встала задача собрать команду для разработки платформы обработки данных. Причём не только команду разработки самой платформы, но ещё и команду дата-инженеров, которые будут пользоваться этой самой платформой: писать конфигурации дата-пайплайнов и наполнять дата-лейк данными. И ещё были нужны аналитики данных, кто бы разбирался в предметных областях и понимал, о чём те или иные таблицы. А так как данных много (пара тысяч таблиц), понадобились дата-сайентисты, кто бы не просто мог ответить на вопрос о качестве данных, но и предложить как это качество данных проверять на масштабе нескольких тысяч таблиц, нескольких сотен дата-пайплайнов и нескольких сотен гигайбайт данных каждый день.
Прошло почти два года со старта проекта, и я готов подвести некоторые итоги и поделиться опытом.
Начну с темы найма. Найма питонистов всех мастей.
Завораживающее предисловие, не правда ли?
ZBrush vs Blender
ZBrush и Blender являются программами 3d-моделирования, и они обе очень популярны как среди любителей, так и среди профессионалов. Хотя эти программы довольно схожи по некоторым аспектам и работают по похожим принципам, особенно в функциональности инструментов для скульптинга, они имеют и ряд весомых отличий.
Blender — программа с открытым исходным кодом, которая наполнена инструментами для моделирования, скульптинга, текстурирования и др. Все эти функции объединены в рабочих пространствах Blender’a, что позволяет переключаться между ними, давая только нужные для процесса инструменты. Главное применение Blender — моделирование и анимация, а остальное используется для простеньких задач, с чем могут не согласиться многие специалисты, создавая шедевры в Blender’e.
ZBrush — программа 3d-моделирования, созданная Pixologic, основной задачей которой в мире 3d является скульптинг. Программа чрезвычайно популярна, и все 3d-художники знают о ней и ей пользуются. Скульптинг в этой программе работает превосходно и имеет тонну полезных инструментов для быстрой и качественной работы. В основном ее используют для создания персонажей или чего-либо органического.
6 Эмуляторов операционных систем, полностью написанных на JavaScript
В этой статье мы рассмотрим некоторые из лучших эмуляторов JavaScript OS, которые работают исключительно внутри браузера. Вам не придется ничего инсталлировать, и при этом в вашем распоряжении будет функциональная операционная система. Давайте рассмотрим несколько замечательных примеров.
Трудности, с которыми мы столкнулись при модуляризации нашего приложения — Часть 1
Цель этой статьи — поделиться с вами опытом, приобретенным в результате масштабирования приложения с нуля до более чем 150 модулей. Мы расскажем вам о трудностях и подводных камнях, с которыми мы столкнулись на этом пути, а также продемонстрируем эволюцию нашего приложения и команды за последние пять лет.
Из специалистов по анализу получаются лучшие инженеры-аналитики
Играли ли вы когда-нибудь в школьные годы в «испорченный телефон»? Первый человек шепотом произносил слово второму, тот тихо передавал его третьему, и так далее, и так далее. В конце очереди последний человек громко объявлял услышанное изречение, и, увы! Оно превращалось в какое-то новое выражение, совершенно непонятное по сравнению с первоначальным. Именно так можно представить себе жизнь без инженера-аналитика в вашей команде.
Итак, предположим, что у вас есть бизнес-вопрос, исходные данные в вашем хранилище, а dbt уже запущен и работает. Вы находитесь в идеальном положении, чтобы быстро завершить работу над этим подготовленным датасетом! Или нет?
Между вами и финальным набором данных стоят три шага. Если у вас нет инженера-аналитика, то работа может быть распределена следующим образом:
Машинное обучение в Streamlit: делаем это понятным для бизнеса
Привет, Хабр! На связи Рустем, IBM Senior DevOps Engineer & Integration Architect.
В этой статье я хотел бы рассказать об использовании машинного обучения в Streamlit и о том, как оно может помочь бизнес-пользователям лучше понять, как работает Data Science. В этой лабораторной работе мы будем использовать набор данных о страховых исках. Мы объединим мощь Streamlit с процессом обработки данных, состоящим из исследовательского анализа данных и оценки различных моделей. Я расскажу, как найти модель, которая не только работает с высокой точностью, но и позволяет бизнес-пользователям лучше понять, как мы получаем приемлемую модель.
Наконец, мы увидим, как мы можем разделить информационную панель на разные вкладки и сделать ее более удобной для использования, когда мы хотим представить проект из области Data Science публике и сделать его пригодным для непосредственного использования.
Зачем писать на C++ в 2022 году?
C++ — это язык программирования, основы которого были заложены более 40 лет назад, но который по-прежнему повсеместен. В этой статье мы с вами разберемся, где и почему он используется, и порассуждаем, есть ли у него будущее.
Python на сервере и в браузере. Путь к Web Assembly
Python как технология разработки приложений преимущественно используется для создания сценариев автоматизации, создания бэкэнда и веб-приложений, а также для анализа данных и использования методов статистики и машинного обучения. Также есть некоторые подходы к созданию мобильных приложений на Python (например, движок Kivy над OpenGL для Android). Но остается незаполненной ниша использования Python-приложений в веб-браузере, что могло бы позволить перенести часть обработки данных непосредственно на клиентское устройство и создавать полноценные fullstack-приложения на одной технологии. Решением этой задачи может стать кросскомпиляция Python в код WebAssembly, который может выполняться как в браузере, так и на сервере с использованием nodejs или движка V8, либо SSVM (Second State Virtual Machine). В статье мы рассмотрим несколько подходов к запуску Python-приложений внутри браузера и сервера с использованием WebAssembly.
JUnit: тестирование методов, вызывающих System.exit()
В определенных ситуациях нам может потребоваться, чтобы метод вызывал System.exit()
и завершал работу приложения. Например, в случае если приложение должно быть запущено только один раз, а затем завершено, или в случае фатальных ошибок, таких как потеря соединений с базой данных.
Если метод вызывает System.exit(), вызвать его из юнит-тестов и делать ассерты становится трудно, потому что это приведет к завершению юнит-теста.
В этом посте мы рассмотрим, как тестировать методы, вызывающие System.exit()
с использованием фреймворка JUnit.
«Оживляем» наше iOS-приложение с помощью Live Activity
В то время как Android-устройства в целом ушли в направлении простых вырезов в экране под фронтальную камеру или даже подэкранных фронталок, Apple создала совершенно новый пользовательский опыт благодаря своему новому пространству для размещения камеры — «челке» (the notch). Сегодня мы с вами обсудим, как реализовать нечто подобное в iOS.
Виджеты, которые Apple представила в iOS 14, позволяют нам просматривать информацию прямо на наших главных экранах.
Но что, если мы пойдем еще дальше и представим контекстно-зависимую информацию, которая всплывает при необходимости и не задерживается на экране слишком долго? А что, если бы это было реализовано таким образом, чтобы все это гармонично работало с самым большим обновлением для фронтальной панели, которое наши iPhone видели с момента появления челки? Больше никаких «а что, если» — встречайте Dynamic Island.
Операционализация аналитики c инструментами класса reverse ETL – опыт использования Census
Сегодня Операционная аналитика и практики reverse ETL - не столько дань моде, сколько насущная потребность многих компаний. Создать идеальное Хранилище мало, ведь данные создают ценность только тогда, когда вы способны их использовать.
• Место reverse ETL в схеме потоков данных
• Потребность в решении задач операционной аналитики
• Различные способы организации reverse ETL
• Кейс: Census для синхронизации данных в Pipedrive CRM
В этой публикации я резюмирую свой опыт выбора решения класса reverse ETL:
Децентрализируй это. Создание сетей хранения без единого центра на Go
Сеть Интернет по своей архитектуре допускает возможность прямого обмена трафиком между любыми узлами, но все же в большинстве сценариев используется асимметричный вариант использования с относительно небольшим количеством узлов, отдающих содержание (объединенных в CDN, кэширующие сети (например, Google Global Cache), либо отдельные зеркала, расположенные на высокоскоростных каналах). При многих достоинствах такой подход не лишен и серъезных недостатков, прежде всего из-за значительной разбалансированности сети и перегрузке некоторых каналов связи при относительно небольшом трафике на других.
Решением этой проблемы могло стать использование сетей, основанных на прямом обмене трафиком (peer-to-peer или p2p), но создание полностью децентрализованной сети представляет значительную сложность, поэтому во многих случаях все же оставляют некоторые общие реестры, хранящие информацию об узлах-носителях определенного содержания (так, например, работают торрент-трекеры) и на которых регистрируются клиенты сети при подключении. Основным недостатком такого псевдодентрализованного подхода является возможность относительно простой остановки функционирования сети через блокировку соответствующих трекеров. Альтернативой могут быть полностью децентрализованные сети и мы рассмотрим в этой статье основные подходы к их реализации на примере свободного протокола и сети Peernet.
API автотестирование приватного облака на Openstack
Многие, кто работает с Openstack или собирается разворачивать облако с его последующим использованием, начинают со временем задумываться о тестировании развернутой облачной платформы. Ведь мало развернуть облачную платформу и поставить ее конечному пользователю (тут я подразумеваю под пользователем заказчика и дальше буду также называть пользователем заказчиков, которым поставляется наша облачная платформа). При поставке облачного решения очень важно не просто предоставить продукт, а поставить продукт высокого качества. И тут возникает дилемма: как проводить тестирование продукта, который состоит из большого количества компонентов и сервисов, и все эти компоненты связаны между собой. Другая проблема заключается в том, что приватное облако VK состоит из множества компонентов, которые разработаны компанией и поставляются в коробке облака. И такие компоненты так же необходимо тестировать.
В данной статье будет говориться исключительно про функциональное API тестирование и не будет отражено тестирование UI и нагрузочное тестирование. Это отдельные большие темы для будущих статей.
Так вот, задача заключается в следующем: необходимо провести функциональное API тестирование приватного облака на Openstack. Давайте немного визуализируем структуру нашего SUT, с которым мы будем взаимодействовать из автотестов:
Python Path — Как использовать модуль Pathlib (с примерами)
В каждой операционной системе существуют свои правила построения путей к файлам. Например, в Linux для путей используются прямые слэши (“/”), а в Windows — обратные слэши (“\”).
Это незначительное отличие может создать проблемы, если вы занимаетесь проектом и хотите, чтобы другие разработчики, работающие в разных операционных системах, могли дополнить ваш код.
К счастью, если вы пишете на Python, то с этой задачей успешно справляется модуль Pathlib. Он обеспечит одинаковую работу ваших путей к файлам в разных операционных системах. Кроме того, он предоставляет функциональные возможности и операции, которые помогут вам сэкономить время при обработке и манипулировании путями.
Карьерный путь HR BР или как новичку овладеть этой профессией?
С чего может начаться карьерный путь в HR BP и что это за профессия? Как новичку попасть в эту профессию и сделать успешную карьеру? В этой статье на примере конкретных кейсов я покажу, как овладеть этой популярной и востребованной профессией.
Цифровые двойники как инструмент цифровой трансформации
Пандемия COVID-19 и всплекс релокации 2022 года привели к необходимости пересмотра способов организации бизнес-процессов и методов прогнозирования бизнес-моделей для многих организаций. Наиболее подготовленными к этим изменениям были компании, которые занимаются разработкой программного обеспечения, поскольку они изначально готовы к координации удаленных сотрудников. Но и в остальных сферах (продажа, производство, услуги) появилась потребность в радикальном изменении подходов к управлению распределенным штатом, оценке качества и результатов работы сотрудников (поскольку в любой цифровой трансформации задействуются не только технологии, но и люди) и предварительному прогнозированию возможных рисков, а также к созданию новых пользовательских сценариев. Во всех этих случаях возможным решением для создания информационной архитектуры предприятия являются "цифровые двойники" (Digital Twins), которые могут стать основой для цифровой трансформации организации. В этой статье мы рассмотрим несколько возможных решений для создания цифровых двойников в зависимости от направления деятельности организации.
Тестирование gRPC
В современном мире для большинства проектов необходимо использовать API. API запросы помогают микросервисам коммуницировать между собой, связывая их в одну большую и сложную систему, включающую в себя различные базы данных, из которых происходит чтение информации и последующая перезапись с помощью тех же самых API запросов.
Все эти потребности удовлетворяют большинство современных технологий таких как REST, SOAP и GraphQL. Наиболее популярная это REST. Однако в последнее время набирает обороты технология gRPC, который обладает высокой производительностью, типизированными данными и отличным инструментарием.
Сегодня мы рассмотрим на конкретном примере как тестировать сервис работающий по технологии gRPC.