Влад Дугнист

Влад Дугнист

Неделя
Sep 16, 2019 → Sep 23, 2019
Темы

Архив недели

Понедельник


Привет. Меня зовут Влад. Я делаю skyduck.app – логбук+трекер для парашютистов. На этой неделе поговорим про этот вид спорта и технологии, которые в нём используются.

В этом треде поговорим о парашютном спорте и его представителях. Вы когда-нибудь прыгали с парашютом?

Начнём с того, как становятся парашютистами.

Если вы хотите прыгнуть для развлечения, у вас два варианта: прыжок с ~4000м в тандеме с инструктором или с 800м самостоятельно.

С 800м у вас будет круглый купол, 3 секунды свободного падения и жёсткое приземление. От этих видов прыжков постепенно отказываются, так как круглый купол плохо управляется и высокая травмоопасность на приземлении.

В прыжке с 4000м вас прицепят к инструктору, у которого минимум 500 прыжков и пройденные курсы тандем мастера. У вас будет 45-50 секунд свободного падения и мягкая посадка. Насколько мягкая можно посмотреть на ютубе по запросу “skydiving tandem landing”.

Если вы хотите научиться прыгать самостоятельно, вас нужен курс AFF (Accelerated FreeFall). В него входит теория и 7 прыжков с различными заданиями. После его прохождения вы сможете прыгать самостоятельно на той дропзоне, на которой вас учили.

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

После AFF идут 5 coach прыжков. На них вас научат двигаться в свободном падении вперёд-назад, вверх-вниз и тречить: переводить тело из горизонтального относительно земли в угол ~30 гр. для быстрого движения вперёд. Трекинг можете увидеть на обложке профиля.

Когда AFF и coach прыжки пройдены, вам нужно пройти курс укладки парашюта и прыгнуть минимум раз на своей укладке. Запасной парашют укладывать вам не дадут. Это могут делать только сертифицированные риггеры.

Осталось совсем немного. Вам нужно выполнить 2 прыжка с высоты ниже 1400м (отделился-открылся) и напрыгать за всё время 25 прыжков. После этого устный и письменный экзамен, оплата лицензии и вы лицензированный парашютист. Можно прыгать на любых аэродромах*.

*Есть ограничения. Если площадка приземления маленькая или она находится рядом с водой, дропзона может потребовать 50+/100+ прыжков. Самая строгая – Skydive Dubai. Для допуска там требуют 1000+ прыжков.

Ещё интересные допуски: 200 прыжков – wingsuit (костюм белки летяги) 200 прыжков – прыгать с камерой (даже с gopro) 1000 прыжков – показательные прыжки с приземлением на стандионы

Вторник


Вторая и заключительная часть о парашютистах. В ней о потребностях и функционале нашего приложения.

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

После этого нужно подойти к любому лицензированному парашютисту и попросить его подписать прыжок. Рядом с подписью он также записывает номер своей лицензии.

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

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

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

Широту и долготу мы берём из GPS. Высоте из GPS верить нельзя. Погрешность может быть до километра на высоте 4000м. В GPS данные не всегда точные. Зато есть поле quality, которое показывает относительный разброс.

Для исправления ошибок GPS мы написали библиотеку, которая улучшает трек на основании данных motion сенсоров (акселерометр, магнитометр, гироскоп).

Вот сравнение. Красный трек сырой, зелёный улучшен:
notion image

Помимо устранения GPS выбросов библиотека увеличивает частоту точек в треке. Барометр и GPS отдают данные с частотой 1Hz, а моушн сенсоры – 100Hz. С помощью библиотеки мы превращаем эти данные в 10Hz трек.

Полученный трек мы делим на свободное падение и полёт под куполом. Для каждой части считается статистика, рисуются графики телеметрии и 3d маршрут на карте.

Среда


Сегодня расскажу про разработку и улучшение трекера.

Началось всё с проверки гипотезы. Мы взяли айфон, написали приложение для сбора данных и отправили его в подъём с парашютистом. Данные перекинули на ноут, визуализировали питоном и сверили с ощущениями.

Было похоже на правду, решили продолжить. Нам нужен был источник правды. Для этого мы купили flysight – аппаратный трекер для парашютистов с качественным GPS датчиком и барометром. Он выдаёт 10Hz трек.
notion image

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

Сравнили данные с флайсайтом и решили, что всё-таки нужна библиотека для улучшения трека, а для неё нужны данные. Договорились с инструкторами на дропзоне, что они будут прыгать с телефоном и флайсайтом в обмен на флайсайт. Каждый инструктор в день делает ~10 прыжков.

Мы начали собирать данные в октябре, а это уже конец сезона. Но 100-150 пар треков айфон+флайсат мы записать успели.

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

Интересные ошибки в процессе: - Моушн данные могут не приходить если сбился компас. Это нужно обрабатывать и показывать экран калибровки; - Все сенсоры можно ограничить профилями; - В зависимости от системы координат motion manager’а события могут не приходит при отсутствии GPS

Четверг


Я перешёл в стартаперы год назад. До этого всё время занимал должность разработчика. После перехода изменилось две вещи: доход и область ответственности.

У нас двое фаундеров: CEO (Игорь Каменев) и СТО (я). Легко занять эту должность, когда в компании два разработчика и один из них уже CEO.

Игорь отвечает за деньги, бек, библиотеку и рекламу. Я за приложение, дизайн, иллюстрации и общение с пользователями. Фичи проектируем вместе, остальные задачи делим по желанию и возможностям.

«Отвечает» в предыдущем посте не всегда значит делает. Это может быть и коммуникация с исполнителями. За год мы поработали с 8 контрактниками и одной студией.

Мне за это время посчастливилось писать на Swift, C, Objective-C++, Python и Kotlin. А ещё с пользователями общаться, креативы для видео придумывать, а потом монтировать, над дизайном думать.

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

С другой стороны, легко скатиться в мысли «за эти деньги результат хороший» при анализе своей работы. Мне помогает подсчёт недозаработанных денег. Он мотивирует быстрее делать функционал, на котором можно заработать.

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

Пятница


Сегодня про нетворкинг и его пользу.

Я начал ходить на митапы/конференции в первый год работы разработчиком и продолжаю до сих пор. В основном не из-за докладов. Доклады можно посмотреть в записи на 2х во время переноса интерфейса из zeplin в код или другой скучной работы.

Несколько раз я пропускал доклады и приходил сразу в бар на афтепати.

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

- во время поиска работы получил ~10 приглашений на собеседование с одного поста в fb - самый лучший результат при минимальном бюджете мы получали работая с исполнителями, найденными по знакомству

Всем хорошей пятницы!
notion image

Я тут оказался в Минске. Завтра весь день свободен. Подскажите, куда можно сходить программисту?

Воскресенье


Вчера был день без твитов так как я нашёл баг в пропускной системе на трассе Москва-Минск и потратил весь день на его исправление.

Граждане !(РФ || РБ) могут проехать из Москвы в Минск, а вот обратно уже не могут. Нужно ехать 400км на юг к другому кпп.

Я уже чуть больше года работаю в свободном графике. Работаю, когда есть силы, и отдыхаю, когда они заканчиваются. Плюсы в сравнении с 5/2: - в будние дни меньше людей в любом месте развлечения (дропзона, бассейн, кинотеарт) - в метро в обед ездить очень комфортно

- если работа не идёт, никто не держит в офисе (да и офиса нет) - быстро решаются маленькие задачи (ответить на сообщение, поправить мелочь в коде, добавить задачу)

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

И ещё одна мысль про продуктивность. Долгое время думал, что для продуктивной работы нужен хороший отдых. По мере падения энтузиазма пробовал больше отдыхать, не помогало. Пока не попробовал обратный вариант – больше работать. Недельный режим хакатона вернул меня в чувство.

На этом моя неделя заканчивается. Спасибо, что читали. Меня можно найти по ссылке fb.com/vdugnist. Если будете прыгать с парашютом, не забудьте записать свой полёт с помощью skyduck.app 🙂

Ссылки