Подкаст: междисциплинарный подход к развитию в области робототехники и биомехатроники

В четвертом выпуске подкаста принял участие Сергей Колюбин, руководитель международной лаборатории «Биомехатроники и энергоэффективной робототехники» и заместитель директора мегафакультета компьютерных технологий и управления Университета ИТМО.

Аудиоверсия: Apple Podcasts · Яндекс.Музыка · PodFM · Google Podcasts · YouTube.


На фото: Сергей Колюбин


Лаборатории — робототехники и киберфизических систем

Таймкод — 00:18


dmitrykabanov: Мы с вами обычно в дистанционном режиме взаимодействуем — например, по комментариям для блога университета на Хабре. Ранее это были фотоэкскурсии: по лаборатории киберфизических систем и FabLab — его нам показывал Алексей Щеколдин). Тогда он продемонстрировал свою учебную разработку — робота SMARR с элементами VR и AR. Помимо всего прочего, вы выступали в качестве научного консультанта для этого проекта?

Сергей Колюбин: Да, все верно. Я был научным руководителем Алексея в аспирантуре. Это был практико-ориентированный проект в рамках цикла таких работ в университете. Сейчас идет очередной набор студенческих команд под руководством аспирантов. Они готовят прототипы своих решений с перспективой коммерциализации. В ходе этого процесса такие практико-ориентированные НИОКРы помогают впитать культуру производства, знакомят ребят с жизненным циклом их разработок и сопутствующими активностями — например, с нюансами составления документации.

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

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

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


Лаборатория робототехники и возможности для развития

Таймкод — 02:09


Дмитрий: Кстати, в одной из фотоэкскурсий на Хабре была и лаборатория робототехники, где нам показали различные устройства захвата и промышленные манипуляторы.

Сергей: Да, это как раз моя лаборатория.

Дмитрий: Что изменилось с того момента? Над чем сейчас работают в лаборатории?

Сергей: Это — международная научная лаборатория «Биомехатроники и энергоэффективной робототехники». Мы руководим ей совместно с профессором Стефано Страмиджиоли, который представляет Университет Твенте, является достаточно известным экспертом в этой области, он руководит крупными робототехническими хабами и не так давно стал членом академии наук Нидерландов. Этот человек нас мотивирует и ставит сложные задачи. Есть и другие направления — проекты РНФ, которые поддержаны соответствующими грантами; есть заказы от компаний; еще есть «песочница» — инициативные проекты в рамках научных работ с магистрантами и аспирантами.

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

Я даю свободу творчества. Главное условие — соответствие проекта направлению развития лаборатории и наличие фокуса. Если говорить о последнем, то мы занимаемся системами с «гибкими» элементами для работы с неструктурированным окружением. Это ситуация, когда мы не можем описать все свойства окружения, и система должна обладать внутренней адаптивностью.

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


Как присоединиться к этим проектам

Аудиоверсия интервью в Apple Podcasts


Дмитрий: Что вы могли бы порекомендовать тем, кто хотел бы присоединиться к такой работе?

Сергей: На входе есть определенные пререквизиты. Грубо говоря, в моей лаборатории есть три типа специалистов, если рассуждать о компетенциях: «механики», «электронщики» и «алгоритмисты». Первые — ранее учились, делали дипломные проекты или работали в компаниях, связанных с проектированием систем — занимались «mechanical engineering». Вторые — умеют программировать контроллеры, понимают, что такое сенсоры, как на низком уровне организовать обработку данных. Третьи — отвечают за более высокоуровневые алгоритмы и разработку роботов на системном уровне.

Робототехника — междисциплинарная область. Помимо технарей здесь работают эксперты из области медицины и промышленного дизайна. Так, мы занялись европейским проектом из линейки Strategic Partnerships от Erasmus. Сюда вовлечены не только представители Университета ИТМО, но наши коллеги из университетов Левена, Твенте, Университета Озйегин и компании Ford Otosan — крупнейшего подразделения этого бренда по производству грузовиков. Вместе мы делаем образовательный курс уровня «graduate» для магистров и аспирантов, а по ходу этого процесса — выстраиваем более тесную кооперацию между организациями и научными группами.

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


Какие есть особенности у междисциплинарного подхода

Аудиоверсия интервью в Google Podcasts


Дмитрий: Междисциплинарный подход — особенность Университета ИТМО. Его можно встретить на всех топовых программах.

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

Дмитрий: С точки зрения участника образовательного процесса — этот междисциплинарный подход как-то сочетается с индивидуальной траекторией развития или неким фокусом, который бы позволял четко понимать свою специализацию, но при этом учитывать те необходимые компетенции, которые нужно брать из смежных отраслей?

Сергей: Готовность смотреть широко — это необходимость. Наука переживает очередной виток развития. Были универсалы — философы и математики, далее пошла специализация, сейчас идет новый виток, когда востребованы специалисты с универсальными компетенциями.

Уже много лет говорят о «T-shaped professionals», сейчас приходит понимание того, что нужны «Pi-shaped» специалисты, когда вертикалей уже две.

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

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


Баланс теории и практики

Аудиоверсия интервью на Яндекс.Музыке


Дмитрий: Вы говорите про общие компетенции — это та база, которую вы отсматриваете на этапе приема людей? Например, по заданиям конкурса «Я — профессионал» можно увидеть, что это — достаточно фундаментальные и соответствующие таким запросам вещи.

Сергей: Да, мы используем разные инструменты — не только экзамены и конкурс портфолио.

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

Сергей: Я понимаю. Сейчас велик запрос на быстрый переход к практике. Когда я был студентом, это мотивировало. Системы управления и график на экране — это теория, а робот едет или нет, решает свою задачу или нет — это уже наглядная демонстрация. Ты видишь результат и оцениваешь полезность разработки. Но быстро можно решить только простые задачи.

На более сложные вызовы не ответить без фундаментальных знаний. Вы просто потратите кратно больше времени, но если у вас есть понимание и знание формул и методов, все пойдет быстрее.

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

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

Сергей: У нас такого нет. Одна из наших ценностей — уважение к личности. Главное — реализация в профессиональном смысле. Но если техника безопасности требует, нужно экипироваться соответственно. Конечно, у каждого из специалистов мы хотим видеть специализацию. Тогда можно сформировать команду с хорошим уровнем взаимозаменяемости и быть уверенным в том, что каждый из ее участников силен в чем-то своем.

Дмитрий: У каждого может быть личный проект или они всегда общие?

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


Другие выпуски нашего подкаста на Хабре:



ссылка на оригинал статьи https://habr.com/ru/company/spbifmo/blog/519712/

Кайф трекерства в экспансии. Интервью с трекером Дмитрием Безнасюком

Зачем вообще стартапу нужен трекер? Они сами не справятся?
Трекер помогает стартапу расти в акселераторе. Он как старший товарищ, который поддержит и направит. У трекера обычно две основные задачи: задавать вопросы о развитии бизнеса и помогать с тактическими расчетами своей экспертизой и связями. Чаще всего трекер – сам предприниматель или топ-менеджер, знающий бизнес изнутри. Действующих трекеров (тех, кто ведет проекты постоянно, хотя бы 3+ в месяц) – не более 150 на весь рынок, по оценке Дмитрия.
 

Чтение займет 10 минут
Текст: Иван Сурвилло

Дмитрий Безнасюк, трекер программы StartupDrive: «Я IT-предприниматель. Не люблю слово «серийный», хотя иногда его использую. У меня два действующих бизнеса, первый – это компания SEARADAR, это международная платформа аренды яхт, зарегистрированная в Эстонии и Литве. Работает уже три года. Проходил акселератор литовский Baltic sandbox, то есть в роли стартапера бывал и нахожусь. Вторая компания – «Турбодилер», где я не участвую в операционке, только член совета директоров. Это SaaS-платформа для автодилеров. Компания проходила акселератор «ФРИИ». Первый бизнес – компания «ЭмПрана» – про подарки и впечатления. Я ее в 13-м году продал партнерам и вышел оттуда.

 

– Кто такой трекер?

 – Трекер – это смесь ментора и управленца для стартапа. Трекер помогает команде и отдает часть собственной экспертизы. Делается это не какой-то магией, есть такие методики, как Lean Startup или HADI-циклы.
 
Я помогаю команде обозначить цель или цели, которые они проговаривают со мной, осознают и готовы до них бежать. У нас даже в правилах есть пункт, что команда должна сама записывать свои цели. Это нужно потому, что, пока ты разговариваешь с командой, все классно, а когда просишь записать, пишут совсем другое.
 
Дальше я декомпозирую цель на недельные спринты и проверяю, что команда следует по ним, не уходя в сторону. Помогаю подбирать методы достижения целей или решать проблемы, которые возникают на пути к цели. Вплоть до того, что залезаю c командой в маркетинг, придумываю хаки для привлечения клиентов или помогаю им проводить интервью с потенциальными клиентами. Фактически что на неделе в задачах стоит, с тем и работаю.
           
Чаще всего встречи трекера и команды происходят очно. Сейчас – больше онлайн. Обычно у нас одна-две встречи в неделю. На встрече обязательно нужен CEO команды, то есть тот, кто принимает финальные решения, и те, кого нужно подключать на данный момент: маркетологи, продавцы и прочие.
 
Трекер – человек, задающий вопросы. Говорю я только по необходимости. Больше спрашиваю и углубляю до нужного ответа или когда ко мне прямой запрос: «Нам нужна помощь, не работают лиды с «Facebook». Что будем делать»?
 
После встреч – промежуточные касания, во время которых убеждаемся, что команда побежала, или с чем-то столкнулась и остановилась, или просто у нее формируется запрос: «Не понимаем как», «Не получается» или, наоборот, «Получается. Но точно ли это то, что мы хотим получить?».
 

– Ты сам выбираешь команду?

– Обычно организаторы акселераторов стараются сделать так, чтобы между командой и трекером была химия. До старта организуются диагностическая сессия, отборочное интервью, когда ты команду видишь, а команда видит трекера. Часто у команд спрашивают: «Ребята, кто больше понравился, с кем хотели бы работать?»
 

– Бывало, что химия, которая была с самого начала, потом давала сбой?

– С моей стороны не было. Я считаю, что профессионал должен уметь работать с любыми командами, химия скорее приятный бонус. Трекер же обычно выходец или из бизнеса, или топ-менеджер, то есть человек, который умеет работать с большим объемом людей. Я подбираю к команде механизмы, которые с ней будут работать: тот язык, ту коммуникацию.
 

– Кто идет в акселератор?

– StartupDrive – корпоративный акселератор. Туда идут команды, которые предполагают, что их бизнес можно сработать с бизнесом большой компании. Условно, у сети АЗС «Газпромнефть» есть клиентская база, которую они готовы предоставить, и для стартапа это быстрый вход на большое количество B2B-клиентов или на частников. Нужна база? Вот тебе база! Иди попробуй что-нибудь поделать.
 
Обычно в акселератор идут команды, которые находятся в процессе роста. Возможно, не на очень высоких стадиях: год-три существования. Они еще не закостенели, как многие крупные корпорации, гибкие, могут позволить себе участие в акселераторе.
 
Ну и идут те, кто ищет деньги. В акселераторах обычно где-то в конце есть опция получить инвестиции либо большой куш.
 

– Кому точно не стоит идти в акселератор?

– Командам, у которых СЕО не готов участвовать в акселераторе. Это единственное, на мой взгляд, ограничение.
 

– А тебе, как трекеру, зачем акселератор?

– Началось все как хобби. Я проходил акселератор «ФРИИ» (friifond), и спустя какое-то время ребята говорят: «Можешь помочь продиагностировать команду? Похожа на твой бизнес». Я согласился. Раз, второй, третий.
 
Потом мне говорят: «Слушай, хочешь пойти трекером поработать? Ты же сам это проходил со своей командой, посмотришь теперь с другой стороны». И как-то пошло. А когда пошли первые деньги, я уже стал воспринимать это как бизнес.
 
Акселератор помогает мне сохранять гибкость ума. Когда ты работаешь с большим количеством команд, тебе нужно помогать совершенно разным бизнесам за одно-два касания в неделю. Это большое напряжение мозгов, на четыре-пять часов в день. Ты постоянно прыгаешь из контекста одного бизнеса в контекст другого. Для меня это как тренажер: реально помогает быть в тонусе.
 
Еще один момент – практики, которые работают в чужих стартапах, можно применять к себе. Есть этика, что конкурентные или близкие сферы не берешь. Я не могу быть трекером для яхтенного бизнеса: это мой основной доход. Но то, что работает в B2C-маркетинге для доставки еды, может часто срабатывать и в других отраслях. Например, в одном стартапе ребята искали каналы для B2B софта. Классический маркетинг работал не очень хорошо, и мы придумали для них тематический чат в Telegram. Штука классно сработала, я ее применяю у себя на сборы клиентов на вебинары по яхтингу. Оказалось, что чат в Telegram – интересный канал, на который я раньше не смотрел.
 

– Сложно ли тебе, как трекеру, работать в акселераторе?

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

– Стартапу тяжело в акселераторе?

– Я, как прошедший два акселератора с разными стартапами, могу сказать: тяжело.
 
Акселератор = большое напряжение ресурсов всей команды и еще бóльшее напряжение твоих ресурсов как фаундера. Когда я проходил акселератор во ФРИИ, у них был очный набор в Москве, а я сам из Питера. У меня только родился ребенок, которому было 6 месяцев. Я жене говорю: «Тут такое дело, я улетаю в Москву на 3 месяца, но вернусь». Улетел, а она осталась одна.
 
В Москве я был часто недоступен, потому что работал во время акселератора 24/7. Потом остался в столице еще на год, потому что мы открыли московский офис и я не мог уехать. Такая ситуация длилась полтора года.
 

– Ты думал, насколько оправданы для тебя эти жертвы?

– Тогда я был уверен, что действую абсолютно правильно, иначе я бы так не сделал. Но спустя время могу сказать: проект не взлетел, как я этого хотел. Он стал нормальным, локальным бизнесом, который приносит деньги, но я-то хотел world-wide, хотел, чтобы это был следующий уровень…
 
Может быть, я бы это сделал и без жертв, без полуторагодовалых поездок, но правильного ответа тут нет: история не знает сослагательного наклонения. Я точно не жалею. Без этого я был бы кем-то другим, а кем – черт его знает.
 

– Нужно ли какое-то образование трекеру?

– Скорее нужен опыт своего бизнеса. Идеально, если он продолжительный и ты сам работал, ты что-то делал своими руками. Я прямо приверженец этого. Есть трекеры, которые утверждают, что главное – знать методику. На мой взгляд, если ты руками не пробовал, ты только на словах будешь уметь что-то делать. Опыт решает. «Что у тебя конкретно получилось», «Есть чем похвастаться» – это основное.
 
Насчет образования: есть школа трекеров. Даже не одна. Это интересный феномен, который родился только в России. Знакомые ребята ездили в Y Combinator в Калифорнию, там прям интересовались: «Мы не поняли, расскажите? Что такое школа трекеров? Кто такой трекер?»
 
У них же история про менторов. Ментор говорит: «Я гуру в тимбилдинге. Что ты хочешь у меня спросить? Я тебе проведу воркшоп, дальше иди ко мне с любыми запросами, я тебе помогу». А трекер именно ведет команду через акселератор. Может, дело в разнице культур. В Штатах ты набираешь себе предметы, а у нас в университете тебя пинают, чтобы ты сдал курсовую работу.
 

– У тебя, как у трекера, есть что-то, чем можешь похвастаться?

– Есть.
 
У меня было две команды в акселераторе StartupDrive. Первая – это Ucar. Команда работала в B2B, а в акселераторе со мной они вышли в новый сегмент – B2C. Команда выросла десятикратно по выручке с учетом ковида, локдауна и ограничений. Считаю, в этом есть доля моего результата.
 
Вторая команда – Rental Club. Ребята делают маркетплейс для строительной техники. Мы им поменяли модель и пересобрали продукт. Они были ориентированы на владельцев техники, сейчас пошли со стороны клиента. Ребята увеличили средний чек с 180 до 2700 рублей. В 15 раз.
 
Теперь у Rental Club есть ряд предложений от фондов, которые готовы в них вкладывать деньги, увидев новую модель, которая получилась. Ребята, кажется, станут нормальным большим бизнесом. Единственным на этом рынке, у кого получится. Ни у кого до этого в России не получалось такое сделать.
 
Кстати, их пример как раз хорошо показывает, до чего доводит слаженная работа трекера и стартапа в акселераторе. У Rental Club был call-центр, который занимается подбором спецтехники. Схема такая. Заказчик говорит: «Мне нужна техника на объект». Ее быстро ищут, подгоняют и живут на комиссии. Хороший большой растущий бизнес.
 
Дальше они сделали IT-платформу для аренды спецтехники. Забирали с рынка имеющиеся заказы и туда закидывали. Заказов было мало, заказ мало стоил, потому что он не уникальный. Бизнес не заводился.
 
За пару встреч дошли до подмены понятий. Оказалось, что в основном бизнесе схема такая. Приходит заказчик и говорит: «Мне нужно три бульдозера». Ему находят их, и без разницы, сколько своих бульдозеров у Rental Club реально в наличии. Главное, что на рынке эти бульдозеры есть и их можно найти.
 
А тут модель перевернули и стали копать со стороны владельцев техники, хотя в этой истории важен заказчик, потому что он вносит деньги. Когда мы с CEO это раскопали, он говорит: «Спасибо, ты открыл мне глаза». И вроде звучит все просто и понятно, но не всегда получается отрефлексировать себя со стороны. В итоге этот бизнес пошел.
 

– Как думаешь, насколько востребованы трекеры на рынке?

– Я знаю, что у одного из крупных акселераторов 80% продаж делает трекерство. Оно уже как must have для рынка. Даже не совсем крупные корпорации нанимают трекеров. На мой взгляд, три года рынок будет насыщаться. Он сейчас испытывает жесткий дефицит. Трекеры одни и те же по рынку ходят, из одного акселератора в другой. Появляются новые, но у них нет определенной насмотренности, и часто они не задерживаются: либо сами уходят, либо их просто не зовут дальше.
 
Пока востребованность есть.
 

– Ты работаешь со стартапами как психолог?

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

– В чем для тебя кайф быть трекером?

– Экспансия. Такое мужское желание.
 
Объясню: я, как трекер, делаю не только два своих бизнеса, а еще сотню бизнесов в год через меня проходят, и часть получается. Я иду по улице и вижу доставку грузовика, стартапом которой я занимался. Через месяц замечаю, что грузовиков все больше. Думаю: «А я помню, что парни размышляли, закрываться им или нет. Вон растут!» Это кайф.
 

– Бывало, что стартапы приходили к тебе после акселераторов?

– Приходят. Мы же контакты поддерживаем. Иногда приходят трекинг докупать. Иногда я даже на это соглашаюсь. С кем-то как с предпринимателями общаемся. Бывает, и мне ребята помогают. Например, международники Go Global. У них стало получаться на внешних рынках, и они мне говорят, как у них там чего работает. Крайне полезно.
 

– Есть какой-то этический кодекс трекера?

– Есть.
 
Бывает так, что ты работаешь с двумя одинаковыми стартапами в одинаковой индустрии. Кодекс подразумевает, что ты будешь работать с каждым индивидуально. Ты не можешь сказать, что что-то сработало у одного, значит, сработает и у другого. Каждый доходит до своего сам. Сказать одному: «Делай так, потому что это сработало у другого», неэтично.
 
Ты не можешь показывать «внутрянку», если тебе на это не дали согласие.
 
Ты не можешь перенести из одного акселератора в другой что-то из «внутрянки», мотивации, стартапов, комиссии.
 

– Как распознать хорошего трекера?

– Хороший трекер больше задает вопросов, чем говорит.
 
Можно договориться провести с трекером диагностическую сессию – формат, когда трекер определяет узкие места в проекте и сам для себя понимает, будет ли от него ценность в работе с человеком/проектом. А за это время можно увидеть сам подход.
Там же можно спросить о релевантных кейсах, с которыми трекер работал. Если он обладает достаточной насмотренностью, он быстро сможет показать такие кейсы из практики.
 
Еще плюс в копилку трекера – сертификация. Ее когда-то делал ФРИИ как родоначальник профессии трекера в РФ. На сайте есть категории и фамилии сертифицированных трекеров. Она была разовая для рынка, но в любом случае это актуальный чек по персоналиям.
 

– Какие, на твой взгляд, плюсы и минусы у акселератора StartupDrive?

– StartupDrive благодаря пришедшему COVID-19 был первым в моей жизни акселератором, который большую часть времени прошел онлайн. Даже демо-день прошел онлайн. Я впервые мог находиться где угодно, и мне не надо было ездить на встречи. Это классно, потому что моя пропускная способность стала выше и больше времени оставалось на свои проекты. Для стартапов такая же история: того моего кейса с поездкой в Москву на полтора года могло и не быть.
 
Минус в том, что акселератор StartupDrive отраслевой. В него могут попасть не все, и ты ограничен ресурсами. Если ты придешь со стартапом в нейтральный акселератор, то туда могут входить разные компании, а в нашем случае стартап должен обходиться ресурсами одной конкретной. Зато ресурсы StartupDrive под это заточены и могут быстро дать пользу стартапу.
 
Еще StartupDrive – один из первых корпоративных акселераторов, где мы проговорили интересы стартапа и корпорации. Не было такого: «Мы сейчас погоним стартапера в эту штуку, и он должен ее делать». Говорили: «Ребята, мы можем быть совместимы в этом». В итоге стартап говорил: «Да, мне это нравится. Пошли», и другая сторона говорила: «Нам это нравится, и результат нас устроит». Только после этого начинался трекинг. Это очень круто.
 
Не было много теории – тоже плюс. Зато было много практики. Была очень высокая вовлеченность команды самой компании. Ни разу не было такого, чтобы кто-то не пришел из «Газпром нефти» на созвон. Это прям большой бонус. Обычно такая штука ломается в корпорациях, которые хотят акселератор, а команда не готова, и стартап начинает биться сам с собой, и в итоге ничего не получается.
 
У «Газпром нефти» акселератор StartupDrive – реально работающая история.
 

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

ссылка на оригинал статьи https://habr.com/ru/company/gazpromneft/blog/519870/

Immutable Trie: найди то, не знаю что, но быстро, и не мусори

Про префиксное дерево (Trie) написано немало, в том числе и на Хабре. Вот пример, как оно может выглядеть:

И даже реализаций в коде, в том числе на JavaScript, для него существует немало — от «каноничной» by John Resig и разных оптимизированных версий до серии модулей в NPM.

Зачем же нам понадобилось использовать его для сервиса по сбору и анализу планов PostgreSQL, да еще и «велосипедить» какую-то новую реализацию?..

«Склеенные» логи

Давайте посмотрим, на небольшой кусок лога сервера PostgreSQL:

2020-09-11 14:49:53.281 MSK [80927:619/4255507] [explain.tensor.ru] 10.76.182.154(59933) pgAdmin III - ???????????????????? ???????????????? LOG:  duration: 0.016 ms  plan: 	Query Text: explain analyze 	SELECT 		* 	FROM 		pg_class 	WHERE 		relname = 'мама 	мыла 	раму'; 	Index Scan using pg_class_relname_nsp_index on pg_class  (cost=0.29..2.54 rows=1 width=265) (actual time=0.014..0.014 rows=0 loops=1) 	  Index Cond: (relname = 'мама 	мыла 	раму'::name) 	  Buffers: shared hit=2

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

SHOW log_line_prefix; -- "%m [%p:%v] [%d] %r %a "

Потребуется совсем немного магии регулярных выражений

const reTS = "\\d{4}(?:-\\d{2}){2} \\d{2}(?::\\d{2}){2}"   , reTSMS = reTS + "\\.\\d{3}"   , reTZ   = "(?:[A-Za-z]{3,5}|GMT[+\\-]\\d{1,2})";  var re = { // : log_line_prefix       '%a' : "(?:[\\x20-\\x7F]{0,63})"     , '%u' : "(?:[\\x20-\\x7F]{0,63})"     , '%d' : "[\\x20-\\x7F]{0,63}?"     , '%r' : "(?:(?:\\d{1,3}(?:\\.\\d{1,3}){3}|[\\-\\.\\_a-z0-9])\\(\\d{1,5}\\)|\\[local\\]|)"     , '%h' : "(?:(?:\\d{1,3}(?:\\.\\d{1,3}){3}|[\\-\\.\\_a-z0-9])|\\[local\\]|)"     , '%p' : "\\d{1,5}"     , '%t' : reTS + ' ' + reTZ     , '%m' : reTSMS + ' ' + reTZ     , '%i' : "(?:SET|SELECT|DO|INSERT|UPDATE|DELETE|COPY|COMMIT|startup|idle|idle in transaction|streaming [0-9a-f]{1,8}\/[0-9a-f]{1,8}|)(?: waiting)?"     , '%e' : "[0-9a-z]{5}"     , '%c' : "[0-9a-f]{1,8}\\.[0-9a-f]{1,8}"     , '%l' : "\\d+"     , '%s' : "\\d{4}(?:-\\d{2}){2} \\d{2}(?::\\d{2}){2} [A-Z]{3}"     , '%v' : "(?:\\d{1,9}\\/\\d{1,9}|)"     , '%x' : "\\d+"     , '%q' : ""     , '%%' : "%" // : log_min_messages     , '%!' : "(?:DEBUG[1-5]|INFO|NOTICE|WARNING|ERROR|LOG|FATAL|PANIC)" // : log_error_verbosity     , '%@' : "(?:DETAIL|HINT|QUERY|CONTEXT|LOCATION|STATEMENT)"     }; re['%#'] = "(?:" + re['%!'] + "|" + re['%@'] + ")";  // преобразуем log_line_prefix в RegExp для разбора строки let lre = self.settings['log_line_prefix'].replace(/([\[\]\(\)\{\}\|\?\$\\])/g, "\\\$1") + '%#:  '; self.tokens = lre.match(new RegExp('(' + Object.keys(re).join('|') + ')', 'g'));  let matcher = self.tokens.reduce((str, token) => str.replace(token, '(' + re[token] + ')'), lre); self.matcher = new RegExp('^' + matcher, ''); 

Но дальше-то у нас идет запрос вместе с планом — и как понять, где кончается один и начинается другой?..

Казалось бы, план — это текстовое представление дерева, поэтому «корень»-то должен быть один? То есть первая снизу строка с минимальным отступом (пропуская, Trigger ...) — искомый корень и начало плана?

Увы, нет. В нашем примере такой строкой окажется «хвост» раму'::name) от распавшейся на части multiline string. Как быть?

Use Trie, Luke!

Но заметим, что план обязан начинаться с одного из узлов: Seq Scan, Index Scan, Sort, Aggregate, ... — ни много, ни мало, а 133 разных варианта, исключая CTE, InitPlan и SubPlan, которые не могут быть корневыми.

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

Immutable Trie

Но у нашего дерева, которое мы хотим построить, есть несколько особенностей:

  • компактность
    Возможных элементов у нас десятки/сотни вполне ограниченной длины, поэтому не может возникнуть ситуации большого количества очень длинных почти совпадающих ключей, отличающихся только в последнем символе. Самый длинный из наших ключей, наверное — 'Parallel Index Only Scan Backward'.
  • иммутабельность
    То есть элементы добавляются только при инициализации. В дальнейшем процессе его существования они уже не добавляются и не удаляются.
  • пропускная способность
    Мы хотим тратить минимум операций на проверку совпадения каждого элемента. Иначе можно было бы просто последовательно сравнивать каждый элемент с началом строки, пока не найдется нужный.
  • отсутствие сайд-эффектов
    Операции поиска не должны создавать новых объектов в памяти, которые потом пришлось бы «зачищать» Garbage Collector’у.

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

В этом нам помогут две полезные функции:

Строим карту

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

Insert
Index Scan
Index Scan Backward
Index Only Scan
Index Only Scan Backward

Хм… да у них же есть одинаковый префикс «In»!

// определение минимальной длины ключа и Longest Common Prefix let len, lcp; for (let key of keys) {   // первый элемент   if (lcp === undefined) {     len = key.length;     lcp = key.slice(off);     continue;   }    len = Math.min(len, key.length);   // пропускаем, если уже "обнулили" LCP или он совпадает для этого элемента   if (lcp == '' || key.startsWith(lcp, off)) {     continue;   }   // усечение LCP при несовпадении префикса   for (let i = 0; i < lcp.length; i++) {     if (lcp.charCodeAt(i) != key.charCodeAt(off + i)) {       lcp = lcp.slice(0, i);       break;     }   } } 

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

Insert
Index Scan
Index Scan Backward
Index Only Scan
Index Only Scan Backward

В данном случае оказалось неважно, какой символ мы возьмем для разбиения (3-й или 5-й, например) — состав групп окажется все равно одинаковым, поэтому точно такую же комбинацию разбиения на группы повторно обрабатывать незачем:

// перебираем варианты выбора номера тестируемого символа let grp = new Set(); res.pos = {}; for (let i = off + lcp.length; i < len; i++) {   // группируем ключи по соответствующим значениям [i]-символа   let chr = keys.reduce((rv, key) => {     if (key.length < i) {       return rv;     }     let ch = key.charCodeAt(i);     rv[ch] = rv[ch] || [];     rv[ch].push(key);     return rv;   }, {});    // не обрабатываем повторно уже встречавшуюся комбинацию распределений ключей по группам   let cmb = Object.values(chr)     .map(seg => seg.join('\t'))     .sort()     .join('\n');   if (grp.has(cmb)) {     continue;   }   else {     grp.add(cmb);   }    res.pos[i] = chr; } 

Метрика оптимума

Осталось только понять — а если бы на 3-м и 5-м символах группы оказались бы разными — какую из этих веток дерева стоит выбрать? Для этого введем метрику, которая даст нам ответ на этот вопрос — количество одинарных сравнений символа, чтобы найти каждый из ключей.

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

То есть, если мы взяли в строке 3-й символ и обнаружили там 's', то потом нам надо сравнить с помощью startsWith, в худшем случае, еще 6 символов, чтобы убедиться, что там именно Insert.
Итого: 1 (.charCodeAt(2)) + 6 (.startsWith('Insert')) = 7 сравнений.

А вот если там обнаружился 'd', то надо взять еще 7-й, чтобы узнать, будет там 'O' или 'S'. И после этого нам все равно придется перебором проверить список — был ли это 'Index Scan Backward' (+19 сравнений) или только 'Index Scan' (+10 сравнений).

Причем, если в строке будет 'Index Scan Backward', то мы используем всего 19 сравнений, а вот если 'Index Scan' — тогда 19 + 10 = 29.
Итого: 1 (.charCodeAt(2)) + 1 (.charCodeAt(6)) + 19 + 29 (.startsWith(...)) = 50 сравнений только по этой подветке.

В итоге, для нашего примера оптимальная карта будет выглядеть так:

{   '$pos' : 2 // проверяем 3-й символ , '$chr' : Map {     100 => {         // 'd'       '$pos' : 6 // проверяем 7-й символ     , '$chr' : Map {         79 => [ 'Index Only Scan Backward', 'Index Only Scan' ] // 'O'       , 83 => [ 'Index Scan Backward', 'Index Scan' ]           // 'S'       }     }   , 115 => 'Insert' // 's'   } } 

Вжух!

Теперь осталось только свести все воедино, добавить функцию поиска, немного оптимизаций — и можно использовать:

// заполнение карты поиска const fill = (obj, off, hash) => {   off = off || 0;   hash = hash || {};    let keys = obj.src;    // проверка наличия такого списка ключей среди уже обработанных   let H = keys.join('\n');   hash[off] = hash[off] || {};   if (hash[off][H]) {     obj.res = hash[off][H];     return;   }   obj.res = {};   hash[off][H] = obj.res;    let res = obj.res;    // ситуация единственного ключа - возможна только при стартовом вызове   if (keys.length == 1) {     res.lst = [...keys];     res.cmp = res.lst[0].length;     return;   }    // определение минимальной длины ключа и Longest Common Prefix   let len, lcp;   for (let key of keys) {     // первый элемент     if (lcp == undefined) {       len = key.length;       lcp = key.slice(off);       continue;     }      len = Math.min(len, key.length);     // пропускаем, если уже "обнулили" LCP или он совпадает для этого элемента     if (lcp == '' || key.startsWith(lcp, off)) {       continue;     }     // усечение LCP при несовпадении префикса     for (let i = 0; i < lcp.length; i++) {       if (lcp.charCodeAt(i) != key.charCodeAt(off + i)) {         lcp = lcp.slice(0, i);         break;       }     }   }    // если один из ключей является общим префиксом   if (off + lcp.length == len) {     let cmp = 0;     // для двух ключей оптимальный вариант поиска - список     if (keys.length == 2) {       res.lst = [...keys];     }     // выносим "за скобки" слишком короткие ключи     else {       res.src = keys.filter(key => key.length > off + lcp.length);       res.lst = keys.filter(key => key.length <= off + lcp.length);     }      // поиск по списку проходит, начиная с самого длинного ключа, и стоит дорого     res.lst.sort((x, y) => y.length - x.length); // s.length DESC     cmp += res.lst.reduce((rv, key, idx, keys) => rv + (keys.length - idx + 1) * key.length, 0);      // если есть продолжение - копаем дальше     if (res.src && res.src.length) {       fill(res, off + lcp.length + 1, hash);       cmp += res.res.cmp;     }     res.cmp = cmp + 1;     return;   }    // перебираем варианты выбора номера тестируемого символа   let grp = new Set();   res.pos = {};   for (let i = off + lcp.length; i < len; i++) {     // группируем ключи по соответствующим значениям [i]-символа     let chr = keys.reduce((rv, key) => {       if (key.length < i) {         return rv;       }       let ch = key.charCodeAt(i);       rv[ch] = rv[ch] || [];       rv[ch].push(key);       return rv;     }, {});      // не обрабатываем повторно уже встречавшуюся комбинацию распределений ключей по группам     let cmb = Object.values(chr)       .map(seg => seg.join('\t'))       .sort()       .join('\n');     if (grp.has(cmb)) {       continue;     }     else {       grp.add(cmb);     }      let fl = true;     let cmp = 0;     for (let [ch, keys] of Object.entries(chr)) {       // упаковываем группы из единственного ключа       if (keys.length == 1) {         let key = keys[0];         chr[ch] = key;         cmp += key.length;       }       // для групп из нескольких ключей запускаем рекурсию       else {         fl = false;         chr[ch] = {src : keys};         fill(chr[ch], i + 1, hash);         cmp += chr[ch].res.cmp;       }     }      res.pos[i] = {       chr     , cmp     };      // запоминаем позицию "лучшего" символа     if (res.cmp === undefined || cmp + 1 < res.cmp) {       res.cmp = cmp + 1;       res.bst = i;     }      // если за каждым символом остался конкретный ключ, то другие варианты нам не нужны     if (fl) {       res.bst = i;       for (let j = off; j < i; j++) {         delete res.pos[j];       }       break;     }   } };  // сжатие карты поиска в минимальный формат const comp = obj => {   // удаляем служебные ключи   delete obj.src;   delete obj.cmp;   if (obj.res) {     let res = obj.res;     if (res.pos !== undefined) {       // сохраняем только оптимальный вариант проверяемого символа       obj.$pos = res.bst;       let $chr = res.pos[res.bst].chr;       Object.entries($chr).forEach(([key, val]) => {         // упаковываем содержимое ключа         comp(val);         // если внутри символа только список - "поднимаем" его на уровень выше         let keys = Object.keys(val);         if (keys.length == 1 && keys[0] == '$lst') {           $chr[key] = val.$lst;         }       });       // преобразуем объект с ключами-строками в Map с ключами-числами       obj.$chr = new Map(Object.entries($chr).map(([key, val]) => [Number(key), val]));     }     // при наличии списка "поднимаем" вложенные результаты на уровень выше     if (res.lst !== undefined) {       obj.$lst = res.lst;       delete res.lst;       if (res.res !== undefined) {         comp(res);         Object.assign(obj, res);       }     }     delete obj.res;   } };  // поиск по карте - циклы вместо рекурсии и замыканий const find = (str, off, map) => {   let curr = map;   do {     // по символу в позиции     let $pos = curr.$pos;     if ($pos !== undefined) {       let next = curr.$chr.get(str.charCodeAt(off + $pos));       if (typeof next === 'string') {   // значение ключа         if (str.startsWith(next, off)) {           return next;         }       }       else if (next instanceof Array) { // список ключей на проверку         for (let key of next) {           if (str.startsWith(key, off)) {             return key;           }         }       }       else if (next !== undefined) {    // вложенный map, если есть         curr = next;         continue;       }     }     // ищем по дополнительному списку, если он есть     if (curr.$lst) {       for (let key of curr.$lst) {         if (str.startsWith(key, off)) {           return key;         }       }     }     return;   }   while (true); };  function ImmutableTrie(keys) {   this.map = {src : keys.sort((x, y) => x < y ? -1 : +1)};   fill(this.map);   comp(this.map); }  const p = ImmutableTrie.prototype;  p.get = function(line, off) {   return find(line, off || 0, this.map); };  p.has = function(line, off) {   return this.get(line, off) !== undefined; };  module.exports = ImmutableTrie; 

Как можно заметить, при поиске в таком Immutable Trie ни одно животное не пострадало не создается никаких новых объектов в памяти, за которыми потом хотел бы придти GC.

Из бонусов: теперь мы можем получать искомый префикс без необходимости делать .slice на исходной строке, даже если мы знаем, что в самом начале у нее, традиционно для плана, что-то постороннее:

const nodeIT = new ImmutableTrie(...); nodeIT.get('  ->  Parallel Seq Scan on abc', 6); // 'Parallel Seq Scan'

Ну а когда мы уже определились, где план начинается, ровно таким же способом (но уже с помощью Trie названий атрибутов) мы определяем строки, которые являются началом атрибута узла, а какие — продолжение multiline string и «склеиваем» их:

Index Scan using pg_class_relname_nsp_index on pg_class  (cost=0.29..2.54 rows=1 width=265) (actual time=0.014..0.014 rows=0 loops=1)   Index Cond: (relname = 'мама\nмыла\nраму'::name)   Buffers: shared hit=2

Ну а в таком виде его разбирать — уже намного проще.

ссылка на оригинал статьи https://habr.com/ru/company/tensor/blog/518726/

Квантовый хакинг, вычисления, алгоритмы и машинное обучение на практике — дайджест Университета ИТМО

Это подборка текстовых материалов и тематических подкастов с участием представителей Университета ИТМО — студентов, аспирантов, научных сотрудников и преподавателей. Мы обсуждаем научные статьи, делимся личным опытом разработки проектов различного уровня и говорим о возможностях для развития, которыми располагает «первый неклассический».


Фото Claudio Schwarz | @purzlbaum (Unsplash.com)

Как системы ИИ смогут улучшить исследования. ITMO.NEWS взяли интервью у Марина Солячича, профессора MIT. В обсуждении затронули тему фотонных кристаллов и нейронок в фотонике.

Как ускорить открытия в области квантовой физики. Алексей Мельников, представляющий сразу несколько организаций, в том числе и Университет ИТМО, специализируется на «квантовом машинном обучении» и системах ИИ для ученых. В прошлом году он получил престижную премию Национальной академии наук США — Cozzarelli Prize — за работу по теме «Active learning machine learns to create new quantum experiments». Рассказываем простыми словами о том, как подход, предложенный Алексеем и его коллегами, помогает ускорить научные исследования в области квантовой физики: так, в процессе дизайна экспериментов применяется машинное обучение с подкреплением, что позволяет в разы повысить эффективность подготовки к осуществлению опытов.

Квантовые компьютеры: в чем сложность разработки. Александр Кириенко, выступивший в Университете ИТМО в рамках программы ITMO Fellowship, выдвинул рад тезисов по теме квантовых вычислений, а мы — подготовили развернутую заметку по итогам его семинара. В ней — дискуссия о задачах в этой области, их теоретической и практической специфике, проблемах, а еще — рассказ о потенциале таких сфер деятельности как «квантовая химия» и «квантовое программирование».

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

Как определить подлинность подписи. Рассказ о статье Юрия Рождественского, д.ф.-м.н. и профессора факультета фотоники и оптоинформатики, и его коллег — Семена Рудого и Татьяны Вовк. Речь идет о вычислении фрактальной размерности Минковского для траектории кончика пера. В материале — объясняем все простыми словами и приводим примеры.

Как улучшить систему оценки алгоритмов поиска плагиата. Антон Белый и Дмитрий Некрасов, представляющие наш факультет ИТ и программирования приняли участие в нескольких хакатонах, где были поставлены задачи по работе с текстами и поиску заимствований. Результат они решили закрепить в виде статьи и рассказали, почему оценка эффективности алгоритма поиска точных границ заимствований может быть завышена, плюс — опубликовали решение в репозитории.

Что позволяет предсказать пол игрока. Чтобы найти связь между игровым поведением и демографией оценивали потраченное на игру время, внутриигровые достижения, жанры игр и ряд других показателей. Иван Самборский, аспирант факультета ИТиП, замечает, что это поле для исследований гораздо интереснее данных из соц.сетей, где люди стараются в большей степени контролировать свое поведение — задумываются, что публиковать и как себя преподнести аудитории: «В играх такого не происходит: там мы ведем себя так, как хотели бы в жизни. И мне удалось подтвердить, что игровые данные имеют отношение к реальным характеристикам людей».

Что поможет повысить завершаемость онлайн-курсов. Святослав Орешин, победитель конкурса докладов SEEL–2019 и студент нашего бакалавриата, предложил варианты использования методов машинного обучения для увеличения мотивации студентов MOOC и онлайн-курсов различного формата. Его основная задача — повысить их завершаемость. Для этого Святослав оценивал среднее время выполнения заданий и проверил свои гипотезы на данных пяти тысяч учеников одной из образовательных платформ. В материале — простыми словами об этом проекте.


Что еще у нас есть на Хабре:


ссылка на оригинал статьи https://habr.com/ru/company/spbifmo/blog/519874/

На данный момент 5G — плохая шутка

image

Думаете о покупке нового телефона для высокоскоростного 5G? Сделайте себе одолжение: не делайте этого.

Кто не хочет быстрого Интернета и большой пропускной способности? Все хотят. В идеале всем нужно, чтобы гигабитный оптоволоконный кабель приходил к домашнему порогу или в рабочий кабинет. Может, когда-нибудь так и будет. Чего не будет, так это гигабитной скорости в секунду от 5G. Ни сейчас, ни завтра, ни когда-либо.

На данный момент телекоммуникационные компании твердят в одной рекламе за другой много вещей, которые не соответствуют действительности. Но даже по их стандартам 5G — это подделка.

Начнем с самого названия. Нет единого «5G». На самом деле существует три разновидности с очень разными характеристиками.

Во-первых, это 5G с низким диапазоном частот, который предлагает широкий охват. Одна башня может покрыть сотни квадратных миль. Это не демон скорости, но даже скорость 20+ Мбит/с — это чертовски лучше, чем скорость 3 Мбит/с, которой придерживается сельский DSL. И в идеальных ситуациях это может дать вам скорость 100+ Мбит/с.

Затем есть 5G среднего диапазона, работающий в диапазоне от 1 ГГц до 6 ГГц и имеет примерно половину покрытия 4G. Вы можете надеяться получить скорость в диапазоне 200 Мбит/с. Если вы находитесь в Соединенных Штатах, то скорей всего с ним не столкнетесь. Его развертывает только T-Mobile, унаследовавший среднечастотный 5G с полосой канала в 2,5 ГГц от Sprint. Однако оно работает медленно, потому что большая часть его потенциальной пропускной способности уже используется.

Но то, чего хочет большинство людей, — это скорость в 1 Гбит/с с задержкой менее 10 миллисекунд. Согласно новому исследованию NPD, около 40% пользователей iPhone и 33% пользователей Android крайне или очень заинтересованы в приобретении гаджетов 5G. Им нужна такая скорость, и они хотят ее сейчас. А 18% из них даже заявляют, что понимают разницу между типами диапазонов сетей 5G.
Сомнительно. Потому что, если бы они действительно это понимали, они не стали бы так спешить с покупкой смартфона 5G. Видите ли, чтобы получить такую ​​скорость, у вас должен быть 5G миллиметровой длины радиоволны — а это связано со множеством оговорок.

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

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

Насколько это плохо? NTT DoCoMo, ведущий поставщик услуг мобильной связи в Японии, работает над новым видом оконного стекла, поэтому их миллиметровый 5G будет работать. Вряд ли, что большинство людей захотят выкладывать несколько тысяч долларов на замену окон, только для того чтобы телефон заработал.

Предположим, однако, что у вас есть телефон 5G и вы уверены, что можете получить доступ к 5G — на какую производительность вы действительно можете рассчитывать? По словам технического обозревателя Washington Post Джеффри А. Фаулера, можно ожидать, что 5G будет «неуклюжим». Звучит правдоподобно, этому можно верить:

«Попробуйте AT&T со скоростью 32 Мбит/с со смартфоном 5G и 34 Мбит/с со смартфоном 4G. На T-Mobile я получил 15 Мбит/с на 5G и 13 Мбит/с на смартфоне 4G». Он не смог проверить Verizon. Но его смартфон 4G был быстрее, чем его смартфон 5G.

Действительно, OpenSignal сообщает, что средняя скорость пользователей 5G в США составляет 33,4 Мбит/с. Лучше, чем 4G, но не «Вау! Это круто!», о котором, мечтает большинство людей. Это намного хуже, чем в любой другой стране, использующей 5G, за исключением Великобритании.

Также, вы получите 5G лишь в 20% случаев. Если вы не живете или не работаете рядом с приемопередатчиком миллиметровой длины волны, вы просто не увидите обещанных скоростей или чего-то близкого к ним. Честно говоря, не стоит ожидать, что высокоскоростной 5G станет широко доступным раньше 2025 года. И даже когда наступит этот день, сомнительно, что мы все увидим реальных гигабитных секундных скоростей.

С оригиналом статьи можно ознакомиться тут.

ссылка на оригинал статьи https://habr.com/ru/post/519878/