# Понедельник 52 твита
Всем привет! На этой неделе с вами @mogilnikov. Занимаюсь разработкой давно, приходилось писать продакшн код на Delphi, С#, Erlang и Ruby.
10:40Работаю в компании Artec (artec3d.com), где занимаюсь софтом и облаками для сканеров.
10:41Последние 1,5 года был вынужден переключиться на менеджмент, но скоро это кончится и я вернусь обратно на Светлую Сторону, в разработку.
10:44Сегодня я расскажу про то, как устроено 3D-сканирование и связанные с ним технологии. Интересно?
10:44Вот для затравки ролик как чуваки отсканировали микроавтобус: youtube.com/watch?v=XfQx4J…
10:44Зачем нужно 3D-сканирование? Кратко: оцифровка объектов реального мира, чтобы затем с ними работать "в цифре". Применяется очень много где.
12:42Немало голивудских блокбастеров сделаны с артековскими сканерами, Terminator: youtube.com/watch?v=bB8KO6…, Jurassic Wrd: youtube.com/watch?v=jfcqQf…
12:43Парк Юрского Периода: youtube.com/watch?v=jfcqQf…
12:44Археология: artec3d.com/cases/archeolo… artec3d.com/cases/homo-nal…, Архитектура, сохранение культурного наследия: youtube.com/watch?v=fyhkkt…
12:45Медицина youtube.com/watch?v=DgyPx4…, реверс-инжиниринг, криминалистика, контроль качества: youtube.com/watch?v=dyqlY6…
12:47Ну и люди, конечно: youtube.com/watch?v=4GiLAO…
12:47Короче говоря, применения широчайшие. Уже понятно, что скорее всего связка VR + 3D printing + 3D scanning - это The Next Big Thing.
12:48И там топчатся практические все крупные компании. Из этой тройки VR и 3D printing уже становятся массовыми, но 3D scanning еще нет, т.к...
12:48хорошие сканеры пока еще слишком дороги. Но и тут есть прогресс, скоро 3D сенсоры будут в массовых ноутах и планшетах.
12:49@backendsecret чайники не сканируют, их и так в каждом 3д редакторе пачка :)))
Еще как сканируют, если например это чайник династии Цинь :) twitter.com/POS_troi/statu…
12:49@backendsecret если не секрет, из gamedev’а много заказов приходит?
Артек не выполняет заказы, делает сканеры и софт, а потом их продает. Гемдев в топ 5 клиентов. twitter.com/ChillyBwoy/sta…
13:01@backendsecret @mogilnikov как много писали на Erlang? как впечатления?
3 года, впечатления отличные, акторы - лучшая модель конкареси/параллельности ever. Язык очень прост, это и +, и - twitter.com/curpeng/status…
13:08@backendsecret @mogilnikov как много писали на Erlang? как впечатления?
Из минусов: мало библиотек, язык довольно беден на выразительные возможности, мало разработчиков на рынке twitter.com/curpeng/status…
13:13@backendsecret можно поподробней про выразительные возможности? Смотрели ли на Elixir?
Он бедный и медленно развивается, они поддержку хешей в языке 5 лет делали :) twitter.com/curpeng/status…
13:37@backendsecret можно поподробней про выразительные возможности? Смотрели ли на Elixir?
Нормальная поддержка строк и юникода только недавно появилась. Т.е. вот уже 21-й век, а юникод все равно проблема :) twitter.com/curpeng/status…
13:38@backendsecret можно поподробней про выразительные возможности? Смотрели ли на Elixir?
Эликсир - ОК, если вам не страшно брать в продакшн недавнопоявившийся язык - берите.Есть риск, что он выйдет из моды twitter.com/curpeng/status…
13:38@backendsecret можно поподробней про выразительные возможности? Смотрели ли на Elixir?
Вам надо будет с этим как-то жить. Впрочем, сейчас в моде SOA и микросервисы, так что это может не стать проблемой. twitter.com/curpeng/status…
13:41@backendsecret Очень тревожный звончек, когда "спец" при выборе технологии оперирует понятием "модный".
Вы правы, но мы ведь тоже люди и аргументы "новый" и "интересный" тоже влияют на выбор. twitter.com/solverit/statu…
13:51@backendsecret Очень тревожный звончек, когда "спец" при выборе технологии оперирует понятием "модный".
Я слишком кратко это написал. Выйдет из моды => нет сильного сообщества => язык перестает развиваться. Такая логика. twitter.com/solverit/statu…
13:58Такое случается, каждый год на радарах появляется 3 - 4 новых языка, мало кто выживает.
14:00@backendsecret как понимаю вы не в курсе, стоит поглядеть hex.pm и подписаться на plataformatec.com.br/elixir-radar
А как наличие пакетного менеджера и мейл-рассылки гарантирует, что язык не выйдет из моды через 5 - 10 лет? twitter.com/mpak999/status…
14:03@backendsecret ничто не может гарантировать ни одному языку, но это примеры что есть комьюнити, рост и движение.
С одной стороны вы правы, с другой - я готов поставить деньги, что Java и C++ нас с вами переживут :) twitter.com/mpak999/status…
14:14@backendsecret как можно будет забрать выигрышь после вашей смерти?
У потомков :) twitter.com/mpak999/status…
14:18@backendsecret как можно будет забрать выигрышь после вашей смерти?
Но если вы выиграете, то выигрыш нужно будет забирать у меня живого, все-таки :) twitter.com/mpak999/status…
14:22@backendsecret что используете для восстановления поверхностной сетки по точкам? CGAL? Как работаете с углами меньше 90 градусов?
[Матан] CGAL не используем, там наш триангулятор весьма хитрый, проблемы углами < 90 нет, только на совсем маленьких twitter.com/kostaNew/statu…
14:59Как устроены оптические 3D-сканеры. Вот тут есть картинка: artecgroup.zendesk.com/hc/en-us/artic…. На сканере расположены: 1) проектор, проецирующий ...
15:04специальный паттерн на объект; 2) камера, которая снимает текстуру (цвет), вспышка чтобы текстура была хорошо освещена;
15:043) камера, которая снимает объект, на который спроецирован паттерн
15:05На выходе работы сканера множество картинок (сотни, тысячи, десятки тысяч), на которых видно спроецированный паттерн.
15:05Глазами паттерн почти никогда не видно, т.к. он проецируется импульсно и виден только в течении 50мс.
15:05Софт по искажению паттерна вычисляет «глубину» объекта в каждой точке на почти каждой фотографии. Исходя из этого получается «облако точек».
15:07Это множество точек в 3х-мерном пространстве, которые задают поверхность объекта. Затем по этим точкам восстанавливается сама поверхность
15:07И затем она текстурируется (раскрашивается). Если интересно, то тут процесс подробнее: youtube.com/watch?v=al7hVk…
15:08Данных много, алгоритмы сложные (С++ / CPU + GPU), поэтому для большой модели обсчёт может идти часами.
16:33Продукт, в котором все это делается называется Artec Studio artec3d.com/software/artec…, это десктопный клиент, написанный на С++.
16:33Собственно, разработкой последней версии Студии я руководил как менеджер :)
16:34Кстати, можно взять бюджетный сенсор, например Intel RealSense и при помощи Студии получить модель дома. Можно использовать даже MS Kinect.
16:34Если у вас дома есть Kinect, то можете попробовать воспользоваться такой штукой (shapify.me/scan-at-home) и отсканировать себя.
16:35Качество будет так себе, т.к. дешевые сенсоры. Только пожалуйста не сканируйтесь голым.
16:35Модель обсчитывается в облаке и наши модераторы постоянно вычищают оттуда обнаженку, пожалейте их 😃
16:36Казалось бы, сканеры довольно простая штука. Но не все так просто. Например Spider имеет точность (artec3d.com/artec-spider) 50 микрон.
22:53Если взять ж/д рельсу длиной 2м и нагреть её всего на 3 градуса, то сканер увидит изменение длины в результате теплового расширения.
22:53Теперь представьте на сколько это сложно: сканер держит человек в руках (дрожат), сам сканер довольно сильно греется при работе (вспышка),
22:54даже дорогая оптика вносит искажения, параметры электроники «плывут». Т.о. образом современные hi-end сканеры - это такой суровый хайтек
22:55Самая важная часть которого - алгоритмы. Поэтому их берегут как зеницу ока и всячески защищают от дизассемблирования и реверс-инжиниринга.
22:55А чего все молчат? :) Смежные ИТ темы не очень интересны? Завтра будет про то, как устроен бэкэнд.
22:59@backendsecret очень интересно. просто я даже не знаю, какие вопросы задавать, флуди побольше этим всем.23:09
# Вторник 26 твитов
@backendsecret а в чем сложности алгоритмов? Стабилизация должна обеспечиваться железкой ведь, нет?
[1/2] Железки так, к сожалению, не умеют. Сложность алгоритмов - много кода, в книжках только базовые вещи, twitter.com/__pewpew__/sta…
11:29@backendsecret а в чем сложности алгоритмов? Стабилизация должна обеспечиваться железкой ведь, нет?
[2/2] остальное своим умом. Команда 10+ человек сидит и годами пилит только алгоритмы. twitter.com/__pewpew__/sta…
11:29@backendsecret вообще не интересны.
OK, немножко осталось потерпеть, сегодня еще про бэкенд, а завтра про PyCon Russia 2016. :) twitter.com/aktuba/status/…
11:30%username%, а тебе интересно послушать и поговорить с организатором конференций PyCon, RailsClub, FPConf? Бывал тут кто-нибудь на них? :)
11:31Расскажу про Shapify, это кабины для сканирования человеков shapify.me. В кабину заходит человек и его сканируют за 15 секунд.
14:29Через через 10-15 минут, человек получает превью модели на сайте, может выбрать размер, подставку и отправить на печать.
14:30Потом получает по почте фигурку себя, напечатанную на 3D-принтере. Кабина генерирует 2-3 Гб исходных данных.
14:30Они сжимаются до 20-30 Мб, бьются на чанки и загружаются через REST HTTP API (Rails) на сервер. Рельсы складывают все в S3 и запускают
14:31Delayed::Job’ы, которые распаковывают данные, проверяют целостность, готовят WebGL плеер для просмотра модели. Дальше уходит задача RMQ.
14:32Длина очередей репорится через CloudWatch и в зависимости от нее AutoScaling, запускает или останавливает воркеры. Интересные моменты:
14:33Мы очень активно используем spot-инстансы aws.amazon.com/ru/ec2/spot/ и сервера с мощными граф-картами (g2.2xlarge).
14:33С балансировкой есть нюансы, один воркер тратит на обработку запроса примерно 40 минут, а нагрузка резко выраженная пиковая.
14:33Языки: Ruby, C#, C++, хранилища: S3, MySQL, Postgres. Спрашивайте, если интересно что-то ещё :)
14:34Сейчас в системе полные сканы примерно 30 000 человек. Это уникальный на мировом уровне набор данных, больше ни у кого такого нет.
14:34Мы с ними делаем всякий хитрый ML, чтобы улучшать сканирование людей.
14:34Если интересно про WebGL и 3D-графику в вебе, то можно поспрашивать красавицу и умницу @Lik04ka , у ней сегодня день рождения. Поздравляем!
14:35@backendsecret жмёте как-то?
Конечно, последовательность картинок жмется через ffmpeg в видео, набор точек жмется кастомным алгоритмом twitter.com/strizhechenko/…
14:37@backendsecret а какая вообще точность у сканеров, например, отдельно волос оцифрует? Я не про эти, а в принципе, какие в мире есть.
Точность до несколько десятков микрон. Я вчера писал на примере рельсы на сколько это точно. twitter.com/andrey_68/stat…
14:39@backendsecret а какая вообще точность у сканеров, например, отдельно волос оцифрует? Я не про эти, а в принципе, какие в мире есть.
С волосами все сложно, сканеры видят их плохо, это не проблема точности, а проблема отражения света от гривы волос. twitter.com/andrey_68/stat…
14:39Если интересно как выглядит человек в 3D, то вот я в январе сканировался в Люксе: sketchfab.com/models/efe044a…
14:40@backendsecret а для каких задач используете c#?
Компонент, обсчитывающий модель - C++ + Винда, на С# написан клеевой код. Чтобы не мучать Руби под Виндой. twitter.com/ostelaymetaule…
14:42@backendsecret а какая вообще точность у сканеров, например, отдельно волос оцифрует? Я не про эти, а в принципе, какие в мире есть.
Возможно не точно понял вопрос. Можно ли отсканировать один отдельный волос? Подловили, я никогда не пробовал :) twitter.com/andrey_68/stat…
14:44@backendsecret т.е. враппер получающий задачи из RMQ и дергающий c++ либу?
Совершенно верно. twitter.com/ostelaymetaule…
14:44@backendsecret был на RailsClub в 2012, 2013, и в 2014 гг., и собираюсь в этом
Ветеран! twitter.com/vassilevsky/st…
14:58@backendsecret Сейчас работаем над стримингом видео с картами глубины (с кинекта прямо сейчас, хотим ещё software.intel.com/ru-ru/realsens… добавить)16:55
# Среда 19 твитов
Сегодня про PyCon Russia 2016 pycon.ru/2016/. Эту крупнейшая конференция по питону в России. Раньше проходила рядом с Екб, но
10:15переехала в «Москву». Мне очень нравится выездной формат: за городом, когда можно взять семью или пару и совместить конфу и отдых.
10:15Вчера выложили видео всех докладов с Pycon Russia 2016: youtube.com/playlist?list=… Угадаете какой доклад самый крутой по оценке участников? :)
10:16И самый крутой доклад Pycon: "Знай и люби свой CPython во имя луны и великой справедливости» от Александра Кошкина youtube.com/watch?v=0_5_zE…
16:50Не знаю как вы, но я был удивлен. Я бы поставил на Реймонда Хеттингера.
16:50На втором месте по крутости Raymond Hettinger «Thinking about Concurrency» youtube.com/watch?v=Bv25Dw…
16:50Реймонд - Python core developer и он очень-очень крутой. Давно в программировании, был когда-то даже членом комитета по стандартизации C++.
16:50Он приехал с семьей (женой и сыном) на месяц (!). Посетили Москву, Суздаль (!), Сочи, Питер. Устроил себе семейный трип в мазер раша.
16:51На третьем месте Martin Gorner из Гугла: "Tensorflow and deep learning, without a PhD» youtube.com/watch?v=sEciSl…
16:52Реймонд ещё провел мастер-класс «Descriptors and Context Managers», который получил восторженные отзывы.
16:53Мастер-классы не записывали. Может кто-то из читателей был на нем и может рассказать?
16:53Реймонд за ужином рассказывал, что когда он был молод, пришел на одну IT-конференцию, где выставлялись всякие гранды типа IBM.
20:34Там был подвальчик для тех, кому не хватило денег на стенд. Он туда зашел и увидел пару человек за столом и картонкой, на которой было
20:35написано название компании, рукой, т.к. этим даже на табличку денег не хватило. И он там поболтал с патлатым юнцом про их Бейсик.
20:35На табличке было накарябано «Microsoft», а это был Билл :)
20:35Когда я встречал докладчиков, чтобы посадить их в автобус до базы, мне подумалось что нужно надеть что-нибудь яркое, привлекающее внимание.
20:40Решил, что это будет лучшем вариантом чтобы встретить питонистов :) pic.twitter.com/znxtJPLRsd
# Четверг 8 твитов
Я лично серверный JS не одобряю, не для серверов этот язык. Но, может я старый пердун, который ничего не понимает?
12:39Ребята, а вот те, кто хочет выпилить, не могли бы в в реплаях отвечать почему? С другими-то вариантами все ясно.
12:48Как у Толстого, все счастливые семьи счастливы одинаково, несчастливые каждая по своему. Хочется понимать почему. :)
12:49@backendsecret ну если вы спрашиваете за серверный CoffeScript в 2016 — то да, скорее может.
А Coffee стал сильно лучше? Мне казалось, он мало меняется. twitter.com/imserhii/statu…
12:50К слову об умирающих языках, может кто-то на dart'е пишет? Помните такой был у гугла?
12:57@backendsecret наш проект до сих пор вынужден поддерживать формат DBF (dBASE II, точнее). Это засчитывается? :)
Вам надо пиво за вредность на работе выдавать :) twitter.com/YuriyBogomolov…
13:16@backendsecret знакомый пишет и фанатеет от него)22:58
@backendsecret недавно на HolyJS выступал докладчик, который говорил, что Dart еще жив22:58
# Пятница 11 твитов
pic.twitter.com/O8COQGR8bD
Осторожно, пропаганда Java, уберите детей от твиттера :) twitter.com/phillip_webb/s…
12:35@backendsecret сам виноват, надо было выпустить ВСЕХ миньонов с мухобойками (читай: оркестр контейнеров докера), тогда забороли бы проблему.12:49
Я тут уговариваю @vorona_karabuta сделать конференцию по Rust в России. А она говорит: «Rust - не нужен». Что на конференцию никто не пойдет
14:51И докладчиков не будет, т.к., ну он же не нужен :)
14:51В связи с этим чуть более серьезный вопрос, интересен ли вам Rust и пойдете ли вы на конференцию по нему.
14:52Кстати, на грядущий RailsClub приедет Клабник, он один из разработчиков Раста. Так что можно будет поболтать с ним. railsclub.ru/en/main.html
14:53@backendsecret @vorona_karabuta был уже в москве митап по расту, слышал что они аншлаг собрали. Вообще - было бы интересно на такое сходить
Ну, вот голосовалка какие-то противоречивые данные дает. Может и правда рано пока для конфы :) twitter.com/anton_davydov/…
16:37@backendsecret опрос для жителей default city? :)
Отчего же, на конфу можно прилететь, приехать на поезде или автостопом, в автозаке. Много способов :) twitter.com/oleg_antonyan/…
16:52А кто-нибудь писал продакшен на Расте? Как вам? Мучения с компилятором и лайфтаймами не мешают?
17:02@backendsecret либу на 5000 строк для рубишного проекта писал. за 2 недели дня не прошло без нервных срывов "да ну его в баню напишу на си"17:04
@backendsecret Похоже, кроме команды, которая над ним работает, он даром никому не сдался. Все ушли на фрон..... писать на TypeScript.
Я вот могу сказать за многих суровых С++-ников: им Раст очень интересен. Ибо наелись с плюсами. twitter.com/VaultVulp/stat…
17:27# Суббота 2 твита
@backendsecret снова-таки знакомый (уже другой). после пары дней мучений забил и переписал за пару часов на плюсах.8:37
@backendsecret не нашел применения :(8:37
# Воскресенье 8 твитов
Я лично серверный JS не одобряю, не для серверов этот язык. Но, может я старый пердун, который ничего не понимает?
Подводя итоги, большая часть пишут на чистом JS, Coffee/Type не очень распространены. twitter.com/backendsecret/…
13:11Я лично серверный JS не одобряю, не для серверов этот язык. Но, может я старый пердун, который ничего не понимает?
А кто эти 25%, кто хочет выпилить? Почему? twitter.com/backendsecret/…
13:12@backendsecret Пользую серверный JS под предлогом «Сейчас быстро накидаю, а как упрётся, перепишу на другом языке». Ни разу не упёрлось ещё.14:54
В связи с этим чуть более серьезный вопрос, интересен ли вам Rust и пойдете ли вы на конференцию по нему.
Ещё один результат. @vorona_karabuta сказала, что фиг нам, а не конфа по Rust'у :-/ twitter.com/backendsecret/…
15:09@backendsecret @vorona_karabuta злая она. Так ей и передай.18:47
Пора прощаться. Всем спасибо за внимание! С вами был @mogilnikov и немного @vorona_karabuta. Надеюсь, удалось вас немного развлечь без спама
21:16А то обычно в подобных твиттерах на сотый раз обсуждают хороший код, инструменты и прочее :)
21:17На этот раз зарезали мою идею про конференцию по Расту - отличный практический результат 😀
21:18# Ссылки
www.artec3d.com
- https://www.artec3d.com/
- https://www.artec3d.com/cases/archeological-research-original-battle-field-borodino
- https://www.artec3d.com/cases/homo-naledi
- https://www.artec3d.com/software/artec-studio
- https://www.artec3d.com/artec-spider
www.youtube.com
- https://www.youtube.com/watch?v=XfQx4JSNumI
- https://www.youtube.com/watch?v=bB8KO6N0Jx0
- https://www.youtube.com/watch?v=jfcqQf61S-k
- https://www.youtube.com/watch?v=fyhkktUrX-s
- https://www.youtube.com/watch?v=DgyPx4xawVk
- https://www.youtube.com/watch?v=dyqlY6kHfnE
- https://www.youtube.com/watch?v=4GiLAOtjHNo
- https://www.youtube.com/watch?v=al7hVkzLxdE
- https://www.youtube.com/playlist?list=PLRdS-n5seLRqszBqVDF342RMlCWgOTm6q
- https://www.youtube.com/watch?v=0_5_zEOo8kg
- https://www.youtube.com/watch?v=Bv25Dwe84g0
- https://www.youtube.com/watch?v=sEciSlAClL8
other
- https://artecgroup.zendesk.com/hc/en-us/article_attachments/203461409/Artec_Eva.pdf
- https://www.shapify.me/scan-at-home
- https://shapify.me/
- https://aws.amazon.com/ru/ec2/spot/
- https://sketchfab.com/models/efe044ab763945a295becfecdadb0223
- https://software.intel.com/ru-ru/realsense/sr300camera
- http://pycon.ru/2016/
- http://railsclub.ru/en/main.html