Pull to refresh
15
0
Мстислав Живодков @Trufi

Web Developer

Send message

Заблуждения программистов о картах

Reading time12 min
Views53K


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

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

Заблуждение 1. Форма Земли — это просто


Шар — множество точек в пространстве, удалённых от центра на расстояние не выше радиуса. Однако хотя бы из-за суточного вращения форма нашей планеты отличается от идеального шара. Планета сплюснута у полюсов и утолщена на экваторе, а также обладает рельефом и испытывает циклы приливов и отливов.
Читать дальше →
Total votes 314: ↑310 and ↓4+306
Comments114

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

Reading time10 min
Views164K

2021 год в машинном обучении ознаменовался мультимодальностью — активно развиваются нейросети, работающие одновременно с изображениями, текстами, речью, музыкой. Правит балом, как обычно, OpenAI, но, несмотря на слово «open» в своём названии, не спешит выкладывать модели в открытый доступ. В начале года компания представила нейросеть DALL-E, генерирующую любые изображения размером 256×256 пикселей по текстовому описанию. В качестве опорного материала для сообщества были доступны статья на arxiv и примеры в блоге

С момента выхода DALL-E к проблеме активно подключились китайские исследователи: открытый код нейросети CogView позволяет решить ту же проблему — получать изображения из текстов. Но что в России? Разобрать, понять, обучить — уже, можно сказать, наш инженерный девиз. Мы нырнули с головой в новый проект и сегодня рассказываем, как создали с нуля полный пайплайн для генерации изображений по описаниям на русском языке.

В проекте активно участвовали команды SberAI, SberDevices, Самарского университета, AIRI и SberCloud.

Мы обучили две версии модели разного размера и дали им имена великих российских абстракционистов – Василия Кандинского и Казимира Малевича:

1. ruDALL-E Kandinsky (XXL) с 12 миллиардами параметров;

2. ruDALL-E Malevich (XL), содержащая 1,3 миллиарда параметров.

Некоторые версии наших моделей доступны в open source уже сейчас:

1. ruDALL-E Malevich (XL) [GitHub, HuggingFace]

2. Sber VQ-GAN [GitHub, HuggingFace]

3. ruCLIP Small [GitHub, HuggingFace]

4. Super Resolution (Real ESRGAN) [GitHub, HuggingFace]

Две последние модели встроены в пайплайн генерации изображений по тексту (об этом расскажем ниже).

Версии моделей ruDALL-E Malevich (XL), ruDALL-E Kandinsky (XXL), ruCLIP Small, ruCLIP Large, Super Resolution (Real ESRGAN) также скоро будут доступны в DataHub.

Обучение нейросети ruDALL-E на кластере Christofari стало самой большой вычислительной задачей в России: 

1. Модель ruDALL-E Kandinsky (XXL) обучалась 37 дней на 512 GPU TESLA V100, а затем ещё 11 дней на 128 GPU TESLA V100 — всего 20 352 GPU-дней;

2. Модель ruDALL-E Malevich (XL) обучалась 8 дней на 128 GPU TESLA V100, а затем еще 15 дней на 192  GPU TESLA V100 – всего 3 904 GPU-дня.

Таким образом, суммарно обучение обеих моделей заняло 24 256 GPU-дней.

Разберём возможности наших генеративных моделей.

Читать далее
Total votes 119: ↑114 and ↓5+109
Comments185

Делаем хитмап стоимости недвижимости на общедоступных алгоритмах и опенсорсных библиотеках

Reading time8 min
Views14K


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

Под катом — про то, какими алгоритмами пользовались и с какими трудностями встретились, когда делали хитмап стоимости квартир на собственных данных.
Читать дальше →
Total votes 27: ↑26 and ↓1+25
Comments42

Быстрая генерализация маркеров на WebGL-карте

Reading time8 min
Views7.6K

image


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

Генерализируем
Total votes 36: ↑36 and ↓0+36
Comments17

Мы писали, мы писали или что делать когда нас настигает туннельный синдром

Reading time12 min
Views323K
Если вы читаете эти строки, то будет вполне естественно предположить, что вы проводите за компьютером по крайней мере несколько часов в день, а то и больше. Такой режим работы привносит с собой достаточно сильную нагрузку на наши руки, которая может вызвать боли в кистях, запястьях и пальцах. Такие боли вызваны так называемым «туннельным синдромом» (синдромом карпального канала, кистевым туннельный синдром, carpal tunnel syndrome) — хроническим заболеванием.

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

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


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

Читать дальше →
Total votes 136: ↑131 and ↓5+126
Comments112

Как мы сделали игру для Highload++ с воксельной графикой и VR

Reading time21 min
Views18K
На самом деле, это легкий технический лонгрид, надеемся, после прочтения у вас появится дополнительный интерес сделать какую-нибудь игру, или хотя бы вы узнаете, как это работает.



О спикере: Александр Хаёров (@allexx) руководит отделом разработки в компании Ingram Micro Cloud. Ребята в команде Александра считают себя не просто отличными инженерами, а называют себя великой командой voxel джедаями, мастерами оптимизации, гуру 3D и повелителями больших данных! [примечание: по аналогии с названиями должностей в LinkedIn и Medium]

Эта классная команда, готовясь к выступлению на Highload++ 2017, решила развлечь аудиторию и сделать что-то новое и интересное для стенда. Поэтому они запилили игру, о создании которой и пойдет дальше речь.

Хозяйке на заметку: со стороны организаторов, мы очень приветствуем усилия по подготовке к участию в конференции. Они многократно окупаются, привлекая участников, и, как выясняется, идут на пользу команде.

Итак, поехали!


Total votes 36: ↑35 and ↓1+34
Comments3

Алгоритмы антиалиасинга в реальном времени

Reading time19 min
Views46K
image

Алиасинг (aliasing) — это, возможно, наиболее фундаментальный и самый широко обсуждаемый артефакт 3D-рендеринга всех времён. Однако в игровом сообществе его часто недопонимают. В этой статье я подробно расскажу о теме сглаживания (антиалиасинга, anti-aliasing, AA) в реальном времени, особенно о том, что касается игр, и в то же время буду излагать всё достаточно простым языком.

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

Эту программу можно скачать здесь.

Прежде чем начать, позвольте мне сказать несколько слов о производительности: поскольку она является самым важным аспектом графики реального времени, мы в основном сосредоточимся на том, почему и как сегодня реализуется антиалиасинг. Я упомяну характеристики производительности, но строгая оценка всех представленных в этой статье способов антиалиасинга во разнообразных случаях реального использования будет слишком широкой темой для поста.
Читать дальше →
Total votes 75: ↑75 and ↓0+75
Comments12

Почему мы выбрали TypeScript: история разработчиков из Reddit

Reading time7 min
Views18K
image Примерно полгода назад CEO Reddit Стив сообщил о том, что мы перепроектируем сайт. Главный вопрос тут — как именно мы этим занимаемся. В наше время фронтенд-разработка очень сильно отличается от того, что было во времена, когда Reddit появился на свет. Сейчас имеется огромный выбор вариантов для каждой подсистемы веб-приложения. Как рендерить страницы? Как стилизовать контент? Как хранить и обслуживать картинки и видеофайлы? Как писать код? В современных условиях ни на один из этих вопросов нет готового ответа.

Одним из первых подобных вопросов, на который нам необходимо было найти ответ, звучал так: «Какой язык выбрать?».
Читать дальше →
Total votes 35: ↑31 and ↓4+27
Comments55

Дели — сокращай, или как мы делали мобильный 2ГИС Онлайн

Reading time8 min
Views12K


Мобильный веб развивается семимильными шагами. На дворе 2017 год. Мобильный трафик превысил десктопный — больше половины всех страниц теперь открываются через телефоны или планшеты. В 2015 году Google объявил о предпочтении mobile-friendly сайтов при ранжировании выдачи, а в 2016 это сделал Яндекс. Юзеры проводят в интернете 60-70 часов в месяц с мобильных устройств и не готовы идти на компромисс и пользоваться неадаптивными сайтами. И 2ГИС — не исключение. За 2 года рост мобильного трафика 2ГИС Онлайн составил 74%, а месячная аудитория превысила 6 миллионов человек.


17 апреля мы зарелизили новый мобильный онлайн («Монлайн») — одностраничное приложение, доступное по адресу m.2gis.ru. Приложение запущено в двух городах: Уфе и Новосибирске, а в ближайшее время планируется релиз на всю Россию.

Читать дальше →
Total votes 29: ↑27 and ↓2+25
Comments32

Разведка и инженерное дело: 3D-модели зданий, развязок и карьеров по фото

Reading time6 min
Views35K


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

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

Кстати, в чём-то похожая задача была у одного из наших партнёров — нужно было снять карьер площадью 470 Га и:
  1. Определить объёмы выработки породы.
  2. Подсчитать объём склада продукции.
  3. Получить поверхность для уточнения уровня гидроотвала.
  4. Получить 3D-модель всей территории.



Часть маршрутов

Её решили с помощью беспилотника, длинных гвоздей, GPS-приёмника и двух пачек пластиковых тарелок за 5 рублей за штуку.
Читать дальше →
Total votes 43: ↑43 and ↓0+43
Comments33

Эффективное использование Github

Reading time13 min
Views123K

Github — важная часть жизни современного разработчика: он стал стандартом для размещения opensource-проектов. В «2ГИС» мы используем гитхаб для разработки проектов web-отдела и хостинга проектов с открытым кодом.

Хотя большинство из нас пользуются сервисом практически каждый день, не все знают, что у него есть много фишек, помогающих облегчить работу или рутинные операции. Например, получение публичного ключа из URL; отслеживание того, с каких сайтов пользователи приходят в репозиторий; правильный шаринг ссылок на файлы, которые живут в репозиториях гитхаба; горячие клавиши и тому подобное. Цель этой статьи — рассказать о неочевидных вещах и вообще о том, что сделает вашу работу с гитхабом продуктивнее и веселее (я не буду рассматривать здесь работу с API гитхаба, так как эта тема заслуживает отдельной статьи).


Содержание



Читать дальше →
Total votes 149: ↑148 and ↓1+147
Comments38

Этажи: 3D-навигация на WebGL в 2gis.ru

Reading time11 min
Views29K


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

Этажи для веба сделаны на технологии WebGL: они полностью трёхмерные, их можно крутить и приближать. Это первый проект компании, сделанный на этой технологии, и мы хотели бы поделиться опытом реализации.
Читать дальше →
Total votes 47: ↑46 and ↓1+45
Comments23

Введение в программирование шейдеров: часть 3

Reading time12 min
Views15K
Освоив азы работы с шейдерами, мы попытаемся на практике обуздать всю мощь GPU, создав систему реалистичного динамического освещения.


Читать дальше →
Total votes 20: ↑18 and ↓2+16
Comments3

Как создать убедительную механику смерти и не облажаться

Reading time8 min
Views34K
Играм, в которых нельзя умереть (или, если угодно, проиграть), недостает глубины. Если проиграть невозможно, зачем пытаться выиграть? Иначе говоря, если вы не боитесь поражения, стремление к победе теряет всякий смысл. Однако после смерти персонажа игроку необязательно кусать локти и переигрывать все по новой. Механику смерти можно интегрировать в сюжет или геймплей, но главное – сделать это правильно.


Читать дальше →
Total votes 34: ↑31 and ↓3+28
Comments44

Создание игровых уровней: советы и хитрости (часть 1)

Reading time8 min
Views107K
На Хабрахабре достаточно много инди-разработчиков, некоторым из них приходится в той или иной степени заниматься левел-дизайном. В течение последних нескольких месяцев я безвылазно работал над примерно полусотней различных игровых уровней, и хотел бы поделиться своим опытом. Эта статья содержит эффективные Tips and Tricks, которые вы можете использовать, чтобы повысить общее качество вашей игры. Это ни в коем случае не пошаговое руководство, а только сборник идей и полезных советов. Первая часть статьи направлена больше на работу с визуальной составляющей игры, вторая же часть, доступная по ссылке, содержит более фундаментальные вещи, такие как прототипирование, определение размера героя и окружения, плэйтестинг и аналитику.

Читать дальше →
Total votes 59: ↑59 and ↓0+59
Comments16

Information

Rating
Does not participate
Works in
Date of birth
Registered
Activity