Как стать автором
Обновить
94
48.9

Редактор

Отправить сообщение

Генеративные 3D-модели

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров2.6K

Салют, Хабр! На связи Игорь Пасечник — технический лид направления XR RnD SberDevices. Сегодня я хочу рассказать про одно из наших направлений исследований — разработку генеративных моделей для 3D-контента. 

Современные методы генерации 2D-контента, такие, как 2D-диффузионные модели (Kandinsky 3.0, SDXL), уже достигли впечатляющих результатов и несколько лет являются неотъемлемой частью современности, генеративные видео модели также активно развиваются. Кульминацией развития таких подходов, вероятно, станет представленная не так давно модель Sora. Тем не менее большинство из этих моделей до сих пор испытывают проблемы при генерации консистентных 3D-сцен и объектов.

С другой стороны стороны, существует конвенциональная 3D-графика, а также огромная индустрия и множество прикладных областей, включая игры, XR, дизайн, архитектуру, маркетинг, 3D-проектирование, где используются пайплайны на основе 3D-графики и производится контент на их основе. Методы создания 3D-моделей, такие, как ручное моделирование, 3D-сканирование и фотограмметрия, могут быть трудоёмкими, дорогостоящими и требующими специальных навыков. 3D-продакшн в общем виде использует множество инструментов для создания и рендеринга тяжелой фотореалистичной графики, адаптация генеративных 3D-пайплайнов под такие подходы достаточно тяжела из-за множества инструментов, которые такие пайплайны должны поддерживать. Также адаптация больших латентных генеративных 2D-моделей вроде SORA для прикладных задач фотореалистичной графики может стать альтернативой классическми пайплайнам на основе физического моделирования. Тем не менее, на текущий момент пайплайны работы с графикой, использующие базовый набор примитивов, включая меши, PBR-текстуры, простые модели освещения, закрывают множество прикладных задач и также могут быть востребованы у массового пользователя в случае их демократизации.

Читать далее
Всего голосов 17: ↑20.5 и ↓-3.5+24
Комментарии6

Делаем макросы в Rust

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров5K

Привет, Хабр!

Rust имеет два основных типа макросов: декларативные и процедурные. Каждый из этих типов служит различным целям и предоставляет различные возможности манипуляции с кодом.

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

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

В этой статье мы как раз и рассмотрим то, как их пишут на Rust.

Начнем с декларативных!

Читать далее
Всего голосов 22: ↑16 и ↓6+10
Комментарии11

Ферма тестирования SberDevices

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров6.9K

Салют, хабр! В интернете уже довольно много материалов о том, как другие команды строили свои решения для тестирования мобильных приложений (и не только), например: Яндекс Колхоз, Ферма мобильных устройств Selectel, Ферма девайсов VK, Ферма мобильных устройств в Сбере, Мобильная ферма 101 (доклад Антона Малинского).

Я же хочу рассказать про Ферму, которую мы строим в SberDevices

Меня зовут Александр Телешов, и я руковожу разработкой Фермы и Чембера (но про это расскажу в другой раз). Под катом вы найдете небольшую хронологию событий развития Фермы, собранные грабли, интересные факты и забавные наблюдения.

Читать далее
Всего голосов 58: ↑57.5 и ↓0.5+57
Комментарии4

Гуманитарный сдвиг в подготовке архитекторов 1С

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров2.5K


В чем заключается миссия архитектора 1С? По большому счету в том, чтобы задать верное направление усилиям разработчиков. Архитектор 1С должен обладать способностью заглянуть в будущее. Ясно представить себе судьбу и жизненный путь создаваемого продукта. Чего могут захотеть от него пользователи? С чем придется столкнуться тем, кто будет дорабатывать и развивать продукт? Архитектор 1С должен сделать так, чтобы и первым и вторым было максимально удобно с будущим продуктом. Довольно сложная инженерная задача. Каждый раз ее приходится решать заново. Какие вызовы появились в этой области в последнее время. И где здесь место гуманитарным способностям. Поговорим об этом ниже
Читать дальше →
Всего голосов 8: ↑7 и ↓1+6
Комментарии3

Аналитика клиентского опыта: база

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров736

Привет, Хабр!

В последние годы понятие клиентского опыта стало чуть ли не мантрой в бизнесе, и ведь не зря. Пользовательский интерфейс частенько становится причиной успеха того или иного продукта, поэтому анализ клиентского опыта становится не просто nice to have, а must have для каждой компании, считающей себя современными.

Читать далее
Всего голосов 10: ↑8 и ↓2+6
Комментарии0

Тестирование без моков: язык паттернов. Часть 1

Время на прочтение26 мин
Количество просмотров3.9K

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

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

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

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

Читать далее
Всего голосов 12: ↑10 и ↓2+8
Комментарии15

В общих словах про ЯП Dart

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров6.3K

Привет, Хабр!

История Darth Vader началась в 2011 году. Целью создания Dart было предложить альтернативу JavaScript, которая позволила бы создавать более сложные, высокопроизводительные веб-приложения, облегчая при этом процесс разработки.

Со временем Dart претерпел множество апдейтов, но его основной рывок произошел с запуском Flutter — фреймворка для создания нативных интерфейсов для мобильных, веб- и настольных приложений из единой кодовой базы.

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

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

Читать далее
Всего голосов 18: ↑10 и ↓8+2
Комментарии8

Разбираемся с Cloud Landing Zone

Время на прочтение5 мин
Количество просмотров480

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

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

Читать далее
Всего голосов 13: ↑12 и ↓1+11
Комментарии0

10 полезных команд Git

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров12K


В этой статье мы рассмотрим набор команд, которые немного облегчат вам жизнь и повысят продуктивность.
Читать дальше →
Всего голосов 36: ↑25 и ↓11+14
Комментарии9

Quality Gate для автоматизации QA

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров3.1K

Понятие Quality Gate (дословно ворота качества), предполагает автоматические проверки качества, которые устанавливают пороговые значения для продвижения продукта по конвейеру разработки CI/CD.

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

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

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

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

Читать далее
Всего голосов 10: ↑7 и ↓3+4
Комментарии0

Наши глаза разговаривают с нашими ушами. Ученые знают, что они говорят

Время на прочтение3 мин
Количество просмотров2.1K


Нейроученые открыли, что движения глаз можно проследить по звукам, которые они генерируют в ушах. Это показывает, что зрение может влиять на слух.
Читать далее
Всего голосов 17: ↑15 и ↓2+13
Комментарии2

Защищено ли ваше программное обеспечение?

Время на прочтение10 мин
Количество просмотров1.2K

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

С точки зрения того, что именно представляет собой CI/CD: непрерывная интеграция программного обеспечения — это процесс, целью которого является максимально проверенный дистрибутив.

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

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

Читать далее
Всего голосов 15: ↑12 и ↓3+9
Комментарии0

Микросервисы и RabbitMQ в Docker

Время на прочтение12 мин
Количество просмотров14K

Микросервисная архитектура предполагает декомпозицию монолитного приложения на несколько полностью независимо развёртываемых и масштабируемых сервисов. За пределами этого базового определения, то, что представляет собой микросервис, может быть несколько субъективным. Хотя есть несколько проверенных в бою практик, принятых такими гигантами, как Netflix и Uber, которые всегда следует принимать во внимание. И я расскажу о некоторых из них. 

Читать далее
Всего голосов 17: ↑16 и ↓1+15
Комментарии15

ООП в F#

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров3.3K

Привет, Хабр!

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

Читать далее
Всего голосов 15: ↑12 и ↓3+9
Комментарии11

Мониторим работу Windows с помощью Powershell

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров8.5K

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

В операционных системах семейства Windows для автоматизации выполнения задач мониторинга лучше всего использовать Powershell. И далее в этой статье мы рассмотрим несколько полезных скриптов, которые могут упростить мониторинг состояния различных компонентов ОС.

Начнем с мониторинга состояния сетевых портов и взаимодействующих с ними процессов.

Читать далее
Всего голосов 12: ↑10 и ↓2+8
Комментарии3

Учащиеся без высшего образования овладевают важными навыками так же быстро, как и обладатели дипломов

Время на прочтение4 мин
Количество просмотров12K

Исследование Coursera по отчёту ВЭФ “Future of Jobs Report 2023”

В прошлом году Всемирный экономический форум (ВЭФ) опубликовал доклад Future of Jobs Report 2023. В нём анализируются изменения на рынке труда, а также раскрываются темы внедрения технологий, изменения рабочих мест и актуальных навыков в ближайшие пять лет. В рамках сотрудничества с ВЭФ Coursera провела исследование для отчёта и рассказала, как основанные на навыках подходы к развитию рабочей силы могут помочь вытесняемым с рынка труда работникам получить востребованную профессию.

Читать далее
Всего голосов 20: ↑13 и ↓7+6
Комментарии30

Z-test

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров3.8K

Привет, Хабр!

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

В этой статье рассмотрим, что такое Z-тест, чем он полезен и сравним его с t-тестом.

Читать далее
Всего голосов 15: ↑14 и ↓1+13
Комментарии0

Как создать YouTube GIF Maker с использованием Next.js, Node и RabbitMQ

Время на прочтение28 мин
Количество просмотров3K

В этом руководстве мы рассмотрим разработку веб-приложения по созданию GIF-файлов из видеороликов.

Функциональные возможности приложения:
- Создание GIF из видео на YouTube с определённым временным диапазоном.
- Предварительный просмотр результата перед выполнением фактической конвертации.

Компоненты системы:
- Клиентская часть на React (Next.js)
- Бэкенд-сервер на Node
- Node как Service Worker
- В качестве брокера сообщений — RabbitMQ
- Для хранения данных — MongoDB
- Для хранения медиафайлов — Google Cloud Storage

Полный код проекта можно найти на github, а по этой ссылке посмотреть демо-версию приложения.

Читать далее
Всего голосов 16: ↑15 и ↓1+14
Комментарии0

В помощь бизнес-аналитику 1С

Время на прочтение4 мин
Количество просмотров2.4K
Бизнес-аналитик 1С находится ровно посередине между заказчиком и разработчиком-программистом. Чтобы быть успешным, бизнес-аналитику 1С надо обладать целым рядом особых качеств. Одно из них — это умение быть в курсе всех новых возможностей. Возможностей собственно платформы 1С: Предприятие, а также и других продуктов, используемых совместно с платформой.



Читать дальше →
Всего голосов 9: ↑7 и ↓2+5
Комментарии3

Автоматическая проверка названий тестовых методов для Java

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров1.5K

Без сомнений, автоматические тесты важны для поддержания высокого качества кода, снижения вероятности повторного возникновения ранее обнаруженных ошибок и уменьшения времени подготовки к релизу. Но также не менее важно обеспечивать качество и соответствие стандартам кода самих тестов. В ряде случаев для проверок можно использовать существующие инструменты проверки стиля кода (checkstyle, pmd, sonarqube), но кроме самого кода, хороший тест также должен иметь осмысленные названия тестовых методов и давать адекватное описание причины возникшей ошибки. В этой статье мы рассмотрим использование maven-плагина статического анализа jtcop для поддержания единого стандарта именований для тестового кода.

Читать далее
Всего голосов 12: ↑9 и ↓3+6
Комментарии2
1
23 ...

Информация

В рейтинге
105-й
Откуда
Россия
Работает в
Зарегистрирован
Активность