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

Пользователь

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

Почти все, что вы хотели бы знать про Docker

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

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

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

Читать далее
Всего голосов 65: ↑60 и ↓5+65
Комментарии57

Как мы собираем данные для обучения Kandinsky

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

Всем привет! Наша команда в Sber AI занимается генеративными моделями и сегодня мы расскажем про очень важный этап разработки моделей для генерации фотореалистичных изображений и видео — процесс сбора и фильтрации данных. Про этот этап очень редко подробно рассказывают разработчики и исследователи таких известных генеративных моделей как DALL-E 3, Stable Diffusion, MidJourney или SORA. Генеративные модели уже многих впечатлили своими возможностями создавать максимально реалистичные изображения и видеоролики, а качественные данные — далеко не последняя причина, по которой такого качества генераций удалось достичь.

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

Введение в lock-free программирование

Время на прочтение8 мин
Количество просмотров55K
image

В этом посте мы хотели бы еще раз поднять тему программирования без блокировок, сперва дав ему определение, а затем выделить из всего многообразия информации несколько ключевых положений. Мы покажем, как эти положения соотносятся между собой, с помощью блок-схем, а потом мы немного коснемся деталей. Минимальное требование к разработчику, постигающему lock-free, — умение писать правильный многопоточный код, используя мьютексы или другие высокоуровневые объекты синхронизации, например, семафоры или события.
Читать дальше →
Всего голосов 25: ↑24 и ↓1+23
Комментарии17

Домашний веб-сервер для чайников

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

Привет, Хабр! Относительно недавно после пары лет перерыва в айти, потраченных на изучение японского языка, мне пришлось срочно обновлять свои знания на работе. Ну знаете, искать возможности исполнить все хотелки начальника, как и положено эникею. Меня ждало много увлекательных открытий, но при этом, как водится, и немало боли и борьбы с непонятками. Docker, контейнеры, реверс DNS и реверс прокси, получение TLS сертификатов. В какой-то момент я наконец дошёл до удобного решения, которым я теперь хочу поделиться.

В своё время домашний сервер очень облегчил бы мне понимание Docker’а, да и удобство работы с ним неслабо бы повысил. Поэтому возникла идея написать эту статью, после прочтения которой любой человек даже с поверхностными знаниями в информационных технологиях сможет поставить себе постоянно доступный домашний сервер на базе Docker Swarm с удобной веб-мордой, простым получением TLS-сертификатов и Heroku-подобным функционалом (для чего будем использовать PaaS CapRover). 

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

Читать далее
Всего голосов 24: ↑22 и ↓2+23
Комментарии29

Интуитивное понимание пространств и ядер в машинном обучении: Часть 1

Уровень сложностиСложный
Время на прочтение9 мин
Количество просмотров8K

При изучении темы ядер (kernel) в ML/DS программы вузов, роадмэпы и видео на YouTube обычно рассматривают её через призму SVM, не говоря уже о всеми любимых курсах:). Казалось бы, это неплохо: вот тебе краткое объяснение и модель, которая использует ядра. Но, увы, в этих областях желательно понимать многие процессы интуитивно, так сказать — «тяжело в учении, легко в бою». К тому же, эта тема нечто большее, чем просто метод; она позволяет связать многие вещи в машинном обучении в единую картину через пространство, что я и хочу показать в этой статье.

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

Игровые паттерны программирования: Game Loop

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

Это перевод одной из глав книги Game programming patterns Роберта Найстрома. Так как книга по сути состоит из подробного описания шаблонов проектирования, каждая глава может рассматриваться как самостоятельная статья, чем я и воспользовался и перевел, как мне кажется, статью с самым важным паттерном в игростроении — Game loop.

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

Микросети: настройка коммутации

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

Привет, читатель!

У меня в квартире есть множество вещей, которым требуется постоянный доступ к локальной сети и интернету. Планируя ремонт, я учел подключение приставок, телевизоров и ПК по кабелю для стабильности. Однако такой вариант ограничивается возможностями маршрутизатора, который в лучшем случае имеет до десяти портов. Мне же их нужно не менее 11, а для некоторых устройств необходимо POE. Кроме того, для надежного соединения ноутбуков, телефонов и портативных приставок стандартом стали Wi-Fi зоны 5 ГГц.

Чтобы это все реализовать, я подключил и настроил коммутатор и точку доступа, которые когда-то покупал для экспериментов. В статье привожу описание настроек. Это решение легко масштабировать на небольшую компанию. Нужно лишь добавить несколько коммутаторов уровня агрегации и доступа, а также точки доступа для покрытия всей территории.
Читать дальше →
Всего голосов 41: ↑41 и ↓0+53
Комментарии19

Разбираемся в ROC и AUC

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

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

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

В этой статье мы как раз и разберем их.

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

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

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

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

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

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

Читать далее
Всего голосов 37: ↑36 и ↓1+54
Комментарии14

Бесплатные ресурсы для инди-разработчиков

Время на прочтение6 мин
Количество просмотров18K
image

Я изучаю гейм-дизайн и разработку игр. Когда я начала создавать свою первую игрушку (гифка оттуда) по мотивам мультсериала «We Bare Bears», то подолгу зависала, чтобы отрисовать фон, кнопочку, анимацию разрушения блока и пр. Часть артов я, по итогу, не использовала, а время на них тратила много.

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

Updated: я тут немножко подумала, и создала канал в Telegram: GameDEVils, буду там делиться материалами (про геймдизайн, разработку и историю игр), которые слишком короткие, чтобы положить в статью на Хабре.
Читать дальше →
Всего голосов 46: ↑45 и ↓1+53
Комментарии14

Создаем изометрические уровни игры с помощью Stable Diffusion

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

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

Если интересно, добро пожаловать под кат.

Читать далее
Всего голосов 75: ↑75 и ↓0+84
Комментарии27

Градиентный бустинг. Реализация с нуля на Python и разбор особенностей его модификаций (XGBoost, CatBoost, LightGBM)

Уровень сложностиСложный
Время на прочтение28 мин
Количество просмотров11K

На сегодняшний день градиентный бустинг (gradient boosting machine) является одним из основных production-решений при работе с табличными, неоднородными данными, поскольку обладает высокой производительностью и точностью, а если быть точнее, то его модификации, речь о которых пойдёт чуть позже.

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

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

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

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

Вам когда-нибудь приходилось задаваться вопросом, как работает компилятор, но так руки и не дошли разобраться? Тогда этот текст для вас. Мне тоже не доводилось заглядывать под капот, но тут так случилось, что мне нужно прочитать курс лекций о компиляторах местным третьекурсникам. Кто встречался с некомпетентными преподавателями? Здравствуйте, это я :)

Итак, чтобы самому разобраться в теме, я собираюсь написать транслятор с эзотерического языка программирования wend (сокращение от week-end), который я только что сам придумал, в обычный ассемблер. Задача уложиться в несколько сотен строк питоновского кода. Основной репозиторий живёт на гитхабе (не забудьте заглянуть в мой профиль и посмотреть другие tiny* репозитории).

Читать далее
Всего голосов 75: ↑75 и ↓0+75
Комментарии28

Вороной, Манхэттен, рандом

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

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

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

Осторожно, очень много картинок!

Читать далее
Всего голосов 160: ↑160 и ↓0+160
Комментарии53

Математика наклона в картах, или как мы сделали небо

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

Недавно в карте 2ГИС появились небо и туман, которые можно увидеть, увеличив масштаб и наклон. 

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

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

Камеры глубины — тихая революция (когда роботы будут видеть) Часть 1

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



Недавно я описывал, благодаря чему роботы завтра начнут НАМНОГО лучше соображать (пост про аппаратное ускорение нейросетей). Сегодня разберем, почему роботы скоро будут НАМНОГО лучше видеть. В ряде ситуаций намного лучше человека.

Речь пойдет про камеры глубины, которые снимают видео, в каждом пикселе которого хранится не цвет, а расстояние до объекта в этой точке. Такие камеры существуют уже больше 20 лет, однако в последние годы скорость их развития выросла многократно и уже можно говорить про революцию. Причем многовекторную. Бурное развитие идет по следующим направлениям:
  • Structured Light камеры, или камеры структурного света, когда есть проектор (часто инфракрасный) и камера, снимающая структурный свет проектора;
  • Time of Flight камеры, или камеры, основанные на измерении задержки отраженного света;
  • Depth from Stereo камеры — классическое и, пожалуй, наиболее известное направление построения глубины из стерео;
  • Light Field Camera — они же камеры светового поля или пленоптические камеры, про которые был отдельный подробный пост;
  • И, наконец, камеры, основанные на Lidar-технологиях, особенно свежие Solid State Lidars, которые работают без отказа примерно в 100 раз дольше обычных лидаров и выдают привычную прямоугольную картинку.

Кому интересно, как это будет выглядеть, а также сравнение разных подходов и их текущее и завтрашнее применение — добро пожаловать под кат!
Читать дальше →
Всего голосов 79: ↑79 и ↓0+79
Комментарии40

Как стать программистом графики: советы команды AMD Game Engineering

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

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

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

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

От частного к общему: разбираемся в принципах работы Network Address Translation (NAT)

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

Для того чтобы наши устройства из частной сети могли выходить в Интернет, им нужен общедоступный IP-адрес. При этом внутри нашей собственной локальной сети мы можем спокойно использовать частные IP-адреса. В этой ситуации на помощь приходит Network Address Translation (NAT) — технология, которая позволяет множеству устройств в локальной сети получать доступ к Интернету через один общий публичный IP-адрес.

Идея NAT заключается в том, чтобы осуществлять перевод частного локального IP-адреса в общедоступный глобальный IP-адрес и наоборот. Это необходимо для обеспечения доступа к Интернету локальным узлам, использующим частные адреса.

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

Hello, World! Глубокое погружение в Терминалы

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


На написание данной статьи меня вдохновила статья об анализе Сишного printf. Однако, там был пропущен момент о том, какой путь проходят данные после того, как они попадают в терминальное устройство. В данной статье я хочу исправить этот недочет и проанализировать путь данных в терминале. Также мы разберемся, чем отличается Terminal от Shell, что такое Pseudoterminal, как работают эмуляторы терминалов и многое другое.

Читать дальше →
Всего голосов 110: ↑110 и ↓0+110
Комментарии44

Bleeding-edge обход блокировок с полной маскировкой: настраиваем сервер и клиент XRay с XTLS-Reality быстро и просто

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

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

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

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

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

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность