mogilnikov

25 июля 2016, Moscow

# Понедельник 52 твита

Всем привет! На этой неделе с вами @mogilnikov. Занимаюсь разработкой давно, приходилось писать продакшн код на Delphi, С#, Erlang и Ruby.

7:40

Работаю в компании Artec (artec3d.com), где занимаюсь софтом и облаками для сканеров.

7:41

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

7:44

Сегодня я расскажу про то, как устроено 3D-сканирование и связанные с ним технологии. Интересно?

7:44

Вот для затравки ролик как чуваки отсканировали микроавтобус: youtube.com/watch?v=XfQx4J…

7:44

Зачем нужно 3D-сканирование? Кратко: оцифровка объектов реального мира, чтобы затем с ними работать "в цифре". Применяется очень много где.

9:42

Немало голивудских блокбастеров сделаны с артековскими сканерами, Terminator: youtube.com/watch?v=bB8KO6…, Jurassic Wrd: youtube.com/watch?v=jfcqQf…

9:43

Парк Юрского Периода: youtube.com/watch?v=jfcqQf…

9:44

Археология: artec3d.com/cases/archeolo… artec3d.com/cases/homo-nal…, Архитектура, сохранение культурного наследия: youtube.com/watch?v=fyhkkt…

9:45

Медицина youtube.com/watch?v=DgyPx4…, реверс-инжиниринг, криминалистика, контроль качества: youtube.com/watch?v=dyqlY6…

9:47

Ну и люди, конечно: youtube.com/watch?v=4GiLAO…

9:47

Короче говоря, применения широчайшие. Уже понятно, что скорее всего связка VR + 3D printing + 3D scanning - это The Next Big Thing.

9:48

И там топчатся практические все крупные компании. Из этой тройки VR и 3D printing уже становятся массовыми, но 3D scanning еще нет, т.к...

9:48

хорошие сканеры пока еще слишком дороги. Но и тут есть прогресс, скоро 3D сенсоры будут в массовых ноутах и планшетах.

9:49
@backendsecret чайники не сканируют, их и так в каждом 3д редакторе пачка :)))

Еще как сканируют, если например это чайник династии Цинь :) twitter.com/POS_troi/statu…

9:49
@backendsecret если не секрет, из gamedev’а много заказов приходит?

Артек не выполняет заказы, делает сканеры и софт, а потом их продает. Гемдев в топ 5 клиентов. twitter.com/ChillyBwoy/sta…

10:01
@backendsecret @mogilnikov как много писали на Erlang? как впечатления?

3 года, впечатления отличные, акторы - лучшая модель конкареси/параллельности ever. Язык очень прост, это и +, и - twitter.com/curpeng/status…

10:08
@backendsecret @mogilnikov как много писали на Erlang? как впечатления?

Из минусов: мало библиотек, язык довольно беден на выразительные возможности, мало разработчиков на рынке twitter.com/curpeng/status…

10:13
@backendsecret можно поподробней про выразительные возможности? Смотрели ли на Elixir?

Он бедный и медленно развивается, они поддержку хешей в языке 5 лет делали :) twitter.com/curpeng/status…

10:37
@backendsecret можно поподробней про выразительные возможности? Смотрели ли на Elixir?

Нормальная поддержка строк и юникода только недавно появилась. Т.е. вот уже 21-й век, а юникод все равно проблема :) twitter.com/curpeng/status…

10:38
@backendsecret можно поподробней про выразительные возможности? Смотрели ли на Elixir?

Эликсир - ОК, если вам не страшно брать в продакшн недавнопоявившийся язык - берите.Есть риск, что он выйдет из моды twitter.com/curpeng/status…

10:38
@backendsecret можно поподробней про выразительные возможности? Смотрели ли на Elixir?

Вам надо будет с этим как-то жить. Впрочем, сейчас в моде SOA и микросервисы, так что это может не стать проблемой. twitter.com/curpeng/status…

10:41
@backendsecret Очень тревожный звончек, когда "спец" при выборе технологии оперирует понятием "модный".

Вы правы, но мы ведь тоже люди и аргументы "новый" и "интересный" тоже влияют на выбор. twitter.com/solverit/statu…

10:51
@backendsecret Очень тревожный звончек, когда "спец" при выборе технологии оперирует понятием "модный".

Я слишком кратко это написал. Выйдет из моды => нет сильного сообщества => язык перестает развиваться. Такая логика. twitter.com/solverit/statu…

10:58

Такое случается, каждый год на радарах появляется 3 - 4 новых языка, мало кто выживает.

11:00
@backendsecret как понимаю вы не в курсе, стоит поглядеть hex.pm и подписаться на plataformatec.com.br/elixir-radar

А как наличие пакетного менеджера и мейл-рассылки гарантирует, что язык не выйдет из моды через 5 - 10 лет? twitter.com/mpak999/status…

11:03
@backendsecret ничто не может гарантировать ни одному языку, но это примеры что есть комьюнити, рост и движение.

С одной стороны вы правы, с другой - я готов поставить деньги, что Java и C++ нас с вами переживут :) twitter.com/mpak999/status…

11:14
@backendsecret как можно будет забрать выигрышь после вашей смерти?

У потомков :) twitter.com/mpak999/status…

11:18
@backendsecret как можно будет забрать выигрышь после вашей смерти?

Но если вы выиграете, то выигрыш нужно будет забирать у меня живого, все-таки :) twitter.com/mpak999/status…

11:22
@backendsecret что используете для восстановления поверхностной сетки по точкам? CGAL? Как работаете с углами меньше 90 градусов?

[Матан] CGAL не используем, там наш триангулятор весьма хитрый, проблемы углами < 90 нет, только на совсем маленьких twitter.com/kostaNew/statu…

11:59

Как устроены оптические 3D-сканеры. Вот тут есть картинка: artecgroup.zendesk.com/hc/en-us/artic…. На сканере расположены: 1) проектор, проецирующий ...

12:04

специальный паттерн на объект; 2) камера, которая снимает текстуру (цвет), вспышка чтобы текстура была хорошо освещена;

12:04

3) камера, которая снимает объект, на который спроецирован паттерн

12:05

На выходе работы сканера множество картинок (сотни, тысячи, десятки тысяч), на которых видно спроецированный паттерн.

12:05

Глазами паттерн почти никогда не видно, т.к. он проецируется импульсно и виден только в течении 50мс.

12:05

Софт по искажению паттерна вычисляет «глубину» объекта в каждой точке на почти каждой фотографии. Исходя из этого получается «облако точек».

12:07

Это множество точек в 3х-мерном пространстве, которые задают поверхность объекта. Затем по этим точкам восстанавливается сама поверхность

12:07

И затем она текстурируется (раскрашивается). Если интересно, то тут процесс подробнее: youtube.com/watch?v=al7hVk…

12:08

Данных много, алгоритмы сложные (С++ / CPU + GPU), поэтому для большой модели обсчёт может идти часами.

13:33

Продукт, в котором все это делается называется Artec Studio artec3d.com/software/artec…, это десктопный клиент, написанный на С++.

13:33

Собственно, разработкой последней версии Студии я руководил как менеджер :)

13:34

Кстати, можно взять бюджетный сенсор, например Intel RealSense и при помощи Студии получить модель дома. Можно использовать даже MS Kinect.

13:34

Если у вас дома есть Kinect, то можете попробовать воспользоваться такой штукой (shapify.me/scan-at-home) и отсканировать себя.

13:35

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

13:35

Модель обсчитывается в облаке и наши модераторы постоянно вычищают оттуда обнаженку, пожалейте их 😃

13:36

Казалось бы, сканеры довольно простая штука. Но не все так просто. Например Spider имеет точность (artec3d.com/artec-spider) 50 микрон.

19:53

Если взять ж/д рельсу длиной 2м и нагреть её всего на 3 градуса, то сканер увидит изменение длины в результате теплового расширения.

19:53

Теперь представьте на сколько это сложно: сканер держит человек в руках (дрожат), сам сканер довольно сильно греется при работе (вспышка),

19:54

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

19:55

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

19:55

А чего все молчат? :) Смежные ИТ темы не очень интересны? Завтра будет про то, как устроен бэкэнд.

19:59
@backendsecret очень интересно. просто я даже не знаю, какие вопросы задавать, флуди побольше этим всем.
20:09

# Вторник 26 твитов

@backendsecret а в чем сложности алгоритмов? Стабилизация должна обеспечиваться железкой ведь, нет?

[1/2] Железки так, к сожалению, не умеют. Сложность алгоритмов - много кода, в книжках только базовые вещи, twitter.com/__pewpew__/sta…

8:29
@backendsecret а в чем сложности алгоритмов? Стабилизация должна обеспечиваться железкой ведь, нет?

[2/2] остальное своим умом. Команда 10+ человек сидит и годами пилит только алгоритмы. twitter.com/__pewpew__/sta…

8:29
@backendsecret вообще не интересны.

OK, немножко осталось потерпеть, сегодня еще про бэкенд, а завтра про PyCon Russia 2016. :) twitter.com/aktuba/status/…

8:30

%username%, а тебе интересно послушать и поговорить с организатором конференций PyCon, RailsClub, FPConf? Бывал тут кто-нибудь на них? :)

8:31

Расскажу про Shapify, это кабины для сканирования человеков shapify.me. В кабину заходит человек и его сканируют за 15 секунд.

11:29

Через через 10-15 минут, человек получает превью модели на сайте, может выбрать размер, подставку и отправить на печать.

11:30

Потом получает по почте фигурку себя, напечатанную на 3D-принтере. Кабина генерирует 2-3 Гб исходных данных.

11:30

Они сжимаются до 20-30 Мб, бьются на чанки и загружаются через REST HTTP API (Rails) на сервер. Рельсы складывают все в S3 и запускают

11:31

Delayed::Job’ы, которые распаковывают данные, проверяют целостность, готовят WebGL плеер для просмотра модели. Дальше уходит задача RMQ.

11:32

Длина очередей репорится через CloudWatch и в зависимости от нее AutoScaling, запускает или останавливает воркеры. Интересные моменты:

11:33

Мы очень активно используем spot-инстансы aws.amazon.com/ru/ec2/spot/ и сервера с мощными граф-картами (g2.2xlarge).

11:33

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

11:33

Языки: Ruby, C#, C++, хранилища: S3, MySQL, Postgres. Спрашивайте, если интересно что-то ещё :)

11:34

Сейчас в системе полные сканы примерно 30 000 человек. Это уникальный на мировом уровне набор данных, больше ни у кого такого нет.

11:34

Мы с ними делаем всякий хитрый ML, чтобы улучшать сканирование людей.

11:34

Если интересно про WebGL и 3D-графику в вебе, то можно поспрашивать красавицу и умницу @Lik04ka , у ней сегодня день рождения. Поздравляем!

11:35
@backendsecret жмёте как-то?

Конечно, последовательность картинок жмется через ffmpeg в видео, набор точек жмется кастомным алгоритмом twitter.com/strizhechenko/…

11:37
@backendsecret а какая вообще точность у сканеров, например, отдельно волос оцифрует? Я не про эти, а в принципе, какие в мире есть.

Точность до несколько десятков микрон. Я вчера писал на примере рельсы на сколько это точно. twitter.com/andrey_68/stat…

11:39
@backendsecret а какая вообще точность у сканеров, например, отдельно волос оцифрует? Я не про эти, а в принципе, какие в мире есть.

С волосами все сложно, сканеры видят их плохо, это не проблема точности, а проблема отражения света от гривы волос. twitter.com/andrey_68/stat…

11:39

Если интересно как выглядит человек в 3D, то вот я в январе сканировался в Люксе: sketchfab.com/models/efe044a…

11:40
@backendsecret а для каких задач используете c#?

Компонент, обсчитывающий модель - C++ + Винда, на С# написан клеевой код. Чтобы не мучать Руби под Виндой. twitter.com/ostelaymetaule…

11:42
@backendsecret а какая вообще точность у сканеров, например, отдельно волос оцифрует? Я не про эти, а в принципе, какие в мире есть.

Возможно не точно понял вопрос. Можно ли отсканировать один отдельный волос? Подловили, я никогда не пробовал :) twitter.com/andrey_68/stat…

11:44
@backendsecret т.е. враппер получающий задачи из RMQ и дергающий c++ либу?

Совершенно верно. twitter.com/ostelaymetaule…

11:44
@backendsecret был на RailsClub в 2012, 2013, и в 2014 гг., и собираюсь в этом

Ветеран! twitter.com/vassilevsky/st…

11:58
@backendsecret Сейчас работаем над стримингом видео с картами глубины (с кинекта прямо сейчас, хотим ещё software.intel.com/ru-ru/realsens… добавить)
13:55

# Среда 19 твитов

Сегодня про PyCon Russia 2016 pycon.ru/2016/. Эту крупнейшая конференция по питону в России. Раньше проходила рядом с Екб, но

7:15

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

7:15

Вчера выложили видео всех докладов с Pycon Russia 2016: youtube.com/playlist?list=… Угадаете какой доклад самый крутой по оценке участников? :)

7:16
@backendsecret а где можно ответ посмотреть?

Я напишу, конечно :) twitter.com/vanadium23/sta…

7:24

И самый крутой доклад Pycon: "Знай и люби свой CPython во имя луны и великой справедливости» от Александра Кошкина youtube.com/watch?v=0_5_zE…

13:50

Не знаю как вы, но я был удивлен. Я бы поставил на Реймонда Хеттингера.

13:50

На втором месте по крутости Raymond Hettinger «Thinking about Concurrency» youtube.com/watch?v=Bv25Dw…

13:50

Реймонд - Python core developer и он очень-очень крутой. Давно в программировании, был когда-то даже членом комитета по стандартизации C++.

13:50

Он приехал с семьей (женой и сыном) на месяц (!). Посетили Москву, Суздаль (!), Сочи, Питер. Устроил себе семейный трип в мазер раша.

13:51

Твиттер Реймонда Хеттингира - @raymondh, если вы питонист, то стоит фолловить :)

13:51

На третьем месте Martin Gorner из Гугла: "Tensorflow and deep learning, without a PhD» youtube.com/watch?v=sEciSl…

13:52

Реймонд ещё провел мастер-класс «Descriptors and Context Managers», который получил восторженные отзывы.

13:53

Мастер-классы не записывали. Может кто-то из читателей был на нем и может рассказать?

13:53

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

17:34

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

17:35

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

17:35

На табличке было накарябано «Microsoft», а это был Билл :)

17:35

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

17:40

Решил, что это будет лучшем вариантом чтобы встретить питонистов :) pic.twitter.com/znxtJPLRsd

17:41

# Четверг 8 твитов

Я лично серверный JS не одобряю, не для серверов этот язык. Но, может я старый пердун, который ничего не понимает?

9:39

Ребята, а вот те, кто хочет выпилить, не могли бы в в реплаях отвечать почему? С другими-то вариантами все ясно.

9:48

Как у Толстого, все счастливые семьи счастливы одинаково, несчастливые каждая по своему. Хочется понимать почему. :)

9:49
@backendsecret ну если вы спрашиваете за серверный CoffeScript в 2016 — то да, скорее может.

А Coffee стал сильно лучше? Мне казалось, он мало меняется. twitter.com/imserhii/statu…

9:50

К слову об умирающих языках, может кто-то на dart'е пишет? Помните такой был у гугла?

9:57
@backendsecret наш проект до сих пор вынужден поддерживать формат DBF (dBASE II, точнее). Это засчитывается? :)

Вам надо пиво за вредность на работе выдавать :) twitter.com/YuriyBogomolov…

10:16
@backendsecret знакомый пишет и фанатеет от него)
19:58
@backendsecret недавно на HolyJS выступал докладчик, который говорил, что Dart еще жив
19:58

# Пятница 11 твитов

pic.twitter.com/O8COQGR8bD

Осторожно, пропаганда Java, уберите детей от твиттера :) twitter.com/phillip_webb/s…

9:35
@backendsecret сам виноват, надо было выпустить ВСЕХ миньонов с мухобойками (читай: оркестр контейнеров докера), тогда забороли бы проблему.
9:49

Я тут уговариваю @vorona_karabuta сделать конференцию по Rust в России. А она говорит: «Rust - не нужен». Что на конференцию никто не пойдет

11:51

И докладчиков не будет, т.к., ну он же не нужен :)

11:51

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

11:52

Кстати, на грядущий RailsClub приедет Клабник, он один из разработчиков Раста. Так что можно будет поболтать с ним. railsclub.ru/en/main.html

11:53
@backendsecret @vorona_karabuta был уже в москве митап по расту, слышал что они аншлаг собрали. Вообще - было бы интересно на такое сходить

Ну, вот голосовалка какие-то противоречивые данные дает. Может и правда рано пока для конфы :) twitter.com/anton_davydov/…

13:37
@backendsecret опрос для жителей default city? :)

Отчего же, на конфу можно прилететь, приехать на поезде или автостопом, в автозаке. Много способов :) twitter.com/oleg_antonyan/…

13:52

А кто-нибудь писал продакшен на Расте? Как вам? Мучения с компилятором и лайфтаймами не мешают?

14:02
@backendsecret либу на 5000 строк для рубишного проекта писал. за 2 недели дня не прошло без нервных срывов "да ну его в баню напишу на си"
14:04
@backendsecret Похоже, кроме команды, которая над ним работает, он даром никому не сдался. Все ушли на фрон..... писать на TypeScript.

Я вот могу сказать за многих суровых С++-ников: им Раст очень интересен. Ибо наелись с плюсами. twitter.com/VaultVulp/stat…

14:27

# Суббота 2 твита

@backendsecret снова-таки знакомый (уже другой). после пары дней мучений забил и переписал за пару часов на плюсах.
5:37
@backendsecret не нашел применения :(
5:37

# Воскресенье 8 твитов

Я лично серверный JS не одобряю, не для серверов этот язык. Но, может я старый пердун, который ничего не понимает?

Подводя итоги, большая часть пишут на чистом JS, Coffee/Type не очень распространены. twitter.com/backendsecret/…

10:11
Я лично серверный JS не одобряю, не для серверов этот язык. Но, может я старый пердун, который ничего не понимает?

А кто эти 25%, кто хочет выпилить? Почему? twitter.com/backendsecret/…

10:12
@backendsecret Пользую серверный JS под предлогом «Сейчас быстро накидаю, а как упрётся, перепишу на другом языке». Ни разу не упёрлось ещё.
11:54
В связи с этим чуть более серьезный вопрос, интересен ли вам Rust и пойдете ли вы на конференцию по нему.

Ещё один результат. @vorona_karabuta сказала, что фиг нам, а не конфа по Rust'у :-/ twitter.com/backendsecret/…

12:09
@backendsecret @vorona_karabuta злая она. Так ей и передай.
15:47

Пора прощаться. Всем спасибо за внимание! С вами был @mogilnikov и немного @vorona_karabuta. Надеюсь, удалось вас немного развлечь без спама

18:16

А то обычно в подобных твиттерах на сотый раз обсуждают хороший код, инструменты и прочее :)

18:17

На этот раз зарезали мою идею про конференцию по Расту - отличный практический результат 😀

18:18

www.artec3d.com

www.youtube.com

other