Pull to refresh
1
0.2
Send message

Как я разработал квадрокоптер на ESP32 с нуля (ушло 4 года)

Level of difficultyMedium
Reading time12 min
Views49K

При сборке квадрокоптеров и других БПЛА обычно используют готовую плату полетного контроллера, содержащую все необходимые датчики и периферию, и готовую полетную прошивку, например, Betaflight, ArduPilot или PX4. Полетный контроллер управляет моторами квадрокоптера и обеспечивает стабильный полет.

Занимаясь БПЛА с 2016 года, я решил разобраться в устройстве полетных контроллеров максимально глубоко и создать квадрокоптер с нуля, не используя готовый полетный контроллер и готовый софт. Спустя долгое время разработки мне удалось это сделать. Я написал прошивку с максимально простым исходным кодом и выложил ее на GitHub. В этой статье я расскажу о теории и практике разработки полетного софта для квадрокоптера и проиллюстрирую это на примере своего дрона на базе микроконтроллера ESP32, который можно увидеть на картинке выше.

Читать далее
Total votes 312: ↑312 and ↓0+371
Comments132

Почему ваш проект тонет или как начать фиксировать требования, когда у вас ничего нет

Level of difficultyMedium
Reading time10 min
Views9.3K

В какой-то определенный момент после старта нового проекта, когда «временный» MVP почти готов, весь интересный код уже написан, пакеты еще свежие и обновляются, команды начинают замедляться в Time to Market.

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

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

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

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

Давайте разбираться
Total votes 16: ↑14 and ↓2+17
Comments26

Уводим стартап от «конвеерной штамповки фичей». Включаем продуктовый подход и начинаем считать ROI

Level of difficultyEasy
Reading time4 min
Views1.8K

Стартапы в последние пару лет, мягко говоря, оказались между Сциллой и Харибдой. Многие бизнесы начали сжиматься (а ЦБ стран жестить), а венчурные фонды внезапно стали очень бережливыми. Как поступают стартапы в США в эпоху неопределенности? Правильно, сразу сокращают персонал и закрываются. Сегодня все уже забыли оптимизм постковидного 2021 года. 

Последние 10 лет я плотно работаю со стартапами, и рынок буквально кричит: "хватит выбрасывать на рынок тонны нового функционала, займитесь уже тем, что у вас получается хорошо”

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

К примеру подсчета ROI в венчурную зиму
Total votes 5: ↑2 and ↓30
Comments2

Как отделаться «малой кровью» при компрометации секретных ключей

Level of difficultyHard
Reading time26 min
Views2.9K

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

Различные методы эволюции ключей (терминология не устоялась, предпочитаю использовать такой перевод словосочетания «key-evolving techniques») асимметричных криптоалгоритмов позволяют защититься от компрометации секретных ключей путем периодической модификации ключевых пар. Подобная защита направлена не на предотвращение компрометации секретного ключа, а на минимизацию последствий такой компрометации: поскольку ключи периодически модифицируются, эволюционируют, данные методы позволяют ограничиться отрицательным воздействием компрометации ключа на свойство целостности или конфиденциальности сообщений, зашифрованных или подписанных только в течение определенного, относительно короткого периода, оставляя защиту сообщений других периодов ненарушенной. Большинство протоколов с эволюцией ключей подразумевает достаточно активный обмен сообщениями между сторонами защищенного обмена данными. При этом бывают сценарии, когда возможности для интерактивного взаимодействия у сторон отсутствуют.

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

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments3

Архитектор в ИТ — он как философ. Все вопросы и решения может подвергнуть сомнению

Level of difficultyMedium
Reading time8 min
Views5.7K

Уважаемые читатели, эта статья будет для вас полезна, если:

Вы являетесь действующим архитектором ИТ и вам необходима дискуссия с коллегами о роли архитектора;

Вы хотите стать архитектором, но еще не осознали, кто это;

С вами рядом работает архитектор, и вы не понимаете, чем он занимается;

Вы не владеете английским, но давно хотели прочитать книгу западного автора по архитектуре;

И в целом если вы интересующийся современными веяниями ИТ, а именно архитектура является популярным запросом от работодателей в виду растущих масштабов автоматизации.

Читать далее
Total votes 8: ↑4 and ↓4+3
Comments19

Что не так с умными колонками и голосовыми ассистентами?

Reading time8 min
Views39K

Если вы когда-нибудь слышали фразу "дьявол в деталях", вы понимаете, что условная Лада Гранта от условного Мерседеса отличается не более, чем на несколько процентов. Фактически обе машины ездят и возят своих пассажиров - это и есть главная их функция. Но внимание к мелочам и продуманный пользовательский опыт (UX) это и есть те самые несколько процентов, которые так разительно влияют на наше восприятие продукта.

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

Что же с ним не так и как это исправить?
Total votes 65: ↑51 and ↓14+49
Comments345

Как рассчитать скорость работы команды и не завалить дату релиза? Спринтовая модель глазами тимлида

Level of difficultyMedium
Reading time16 min
Views14K

Всем привет! Я достаточно давно в разработке и мне приходилось видеть разные вариации гибких методологий управления проектами. Чаще всего я встречал такую картину: вроде есть спринты, дейли, иногда даже демо, отчеты, но все равно, получив набор фичей от бизнеса, команда не могла сказать достаточно быстро (где-то в течение недели), сколько времени ей потребуется на реализацию. Со временем я пришел к своей спринтовой модели, которая позволяет моей команде довольно точно и быстро давать оценку трудозатрат, что в итоге приводит к успешному попаданию в дату релиза.

Читать далее
Total votes 11: ↑9 and ↓2+10
Comments20

ESP32 отладка с помощью JLINK

Reading time7 min
Views13K

Здравствуйте друзья, я хочу поделиться с вами своим опытом в отладке ESP32 с помощью отладчиков, реализующих интерфейс JTAG. Данная задача кажется тривиальной (она такая и есть), при мысли об программировании микроконтроллеров. Но при старте работы с микроконтроллерами ESP32 я столкнулся с рядом проблем, о которых я хочу рассказать и от которых хочу уберечь вас.

Почему, зачем, для кого написана эта статья?

Для кого? Данная статья написана для тех, кто хочет поглубже познакомиться с микроконтроллерами семейства ESP32, а для более глубокого знакомства вам определенно не хватит отладки через терминал.

Читать далее
Total votes 25: ↑25 and ↓0+25
Comments11

Сколько стоит содержать виртуальную девушку? Создаем подругу, записывающую кружочки в Telegram, с помощью 4 нейросетей

Level of difficultyMedium
Reading time18 min
Views51K

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

Поговорим о технической стороне. Как повторить этот шедевр и можно ли обойтись без сервисов OpenAI, которые сложно оплатить в России? И главное — сколько придется инвестировать в виртуальную подругу.
Читать дальше →
Total votes 96: ↑91 and ↓5+111
Comments65

Пишем GPT в 60 строк NumPy (окончание, 2/2)

Level of difficultyMedium
Reading time15 min
Views13K
image

В первой части поста мы начали реализацию с нуля GPT всего в 60 строках numpy.

Во завершающей части мы загрузим в нашу реализацию опубликованные OpenAI веса обученной модели GPT-2 и сгенерируем текст.
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments5

Пиратский софт и его последствия: анализ самого старого и простого вирусного плацдарма в интернете. Часть 1

Reading time14 min
Views7.6K

Распространение вирусного софта в сети с каждым годом становится все изощреннее и изощреннее, чего только злоумышленники не придумают, чтобы «заразить» ваше устройство: используют уязвимости, фишинг, USB‑jacking. Во всем этом динамичном развитии методологии заражений прослеживается одна лазейка, которая возникла с первыми программами, требующими покупку лицензии. Ведь появились сайты с «крякнутым» ПО, в 90% которых содержится какой‑никакой зловред. Произведем анализ последних нашумевших вирусов, которые распространялись через такие веб‑порталы и проведем небольшое исследование, в котором определим реальную вероятность заражения, устанавливая разнообразные «кряки» на своё устройство.

Читать далее
Total votes 11: ↑8 and ↓3+6
Comments13

Управление микроконтроллером через telegram-бот с обратной связью

Reading time8 min
Views28K

Как управлять различными устройствами: свет, вентиляция, полив, а также получать нужные данные от микроконтроллера.

При этом для учебно-тренировочных или DIY-задач совершенно не хочется задействовать дополнительные устройства, на которых будет размещаться сервер и уж тем более не оплачивать внешний статический IP-адрес.

Читать далее
Total votes 18: ↑17 and ↓1+20
Comments13

Почему форумы продолжают жить

Reading time5 min
Views38K

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

Разгорячённые петухи и спокойные интеллектуалы — одни и те же люди, просто на разных сайтах. То есть сама платформа как бы вынуждает людей общаться тем или иным способом. В некоторых условиях неторопливое конструктивное общение практически невозможно, а в других — поощряется. Что это за условия?

Или спросим иначе: почему старые форумы продолжают существовать в 2023 году и там сохраняется своё коммьюнити (преимущественно, по специализированным темам)? Хотя, вы наверное уже догадались.
Читать дальше →
Total votes 113: ↑108 and ↓5+135
Comments414

Декаплинг: качество питания микросхем

Reading time13 min
Views27K

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

Читать далее
Total votes 86: ↑85 and ↓1+107
Comments146

Насколько круто иметь свой сервер в комнате

Reading time6 min
Views116K

Некоторые олды часто вспоминают эпоху до смартфонов, когда в студенческие времена или в школе у них был любимый настольный компьютер. Он стоял прямо в комнате, рядом с кроватью, и работал как личный ассистент в режиме 24/7: играл фоновую музыку (со специальным плейлистом, когда в гости приходили девушки), показывал фильмы, будил уведомлением из аськи или ирки, скачивал сайты ночью по диалапу и т. д.

Но кажется, что эта эпоха возвращается. Только на новом уровне. Сейчас опять стало очень круто иметь в комнате свой сервер, только он выглядит иначе и выполняет другие функции.
Читать дальше →
Total votes 117: ↑116 and ↓1+146
Comments317

Установка кастомных прошивок. Root-права и Magisk

Reading time7 min
Views51K

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

Читать далее
Total votes 4: ↑3 and ↓1+4
Comments22

Молодежь нынче пошла не та, или поиск системного аналитика «за 200»

Reading time8 min
Views111K

Всем привет!

Меня зовут Коля, и я периодически собеседую кандидатов на позицию системного аналитика. За последние два месяца провёл порядка 20 десятков собеседований. В основном были кандидаты с опытом 1.5-3 года, на пути к уровню Middle и с зарплатными ожиданиями 150-200 тысяч рублей в месяц.

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

Читать далее
Total votes 133: ↑120 and ↓13+135
Comments376

Грейды для менеджеров

Reading time6 min
Views13K

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

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

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

Читать далее
Total votes 14: ↑11 and ↓3+16
Comments14

Как оставаться программистом, если у тебя память как у дрозофилы

Reading time15 min
Views62K

Мой мадригал тем инструментам разработки, которые изменили мою жизнь

Программирование стало гораздо более многогранным ремеслом с тех пор, как в середине 1990-х я впервые попробовал AmigaBASIC. В те времена еще можно было купить один большой том о компьютере, на котором вы программируете – и там бы нашлось 99% всей нужной информации. Эта книга, где на множестве страниц уголки загнуты в качестве закладок, обклеенная стикерами, лежала бы у вас под рукой, пока вы вбивали бы команды в монохромный текстовый редактор.

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

Сегодня никто бы больше и не подумал покупать документацию по разработке – и Microsoft, и Apple свободно выкладывают свою документацию в Интернете для всех желающих. А что говорить о проектах с открытым исходным кодом!

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

Читать далее
Total votes 39: ↑35 and ↓4+43
Comments40

Как мы лажали, открывая очередное юрлицо — на этот раз в США

Reading time11 min
Views18K


Я тут открывал юрлицо в США и сделал всё по инструкции «как не облажаться», но облажался. Уже в новых местах, не предусмотренных инструкцией.

Главная инструкция вот тут, она написана не юристом, но сами юристы подтверждают, что получилась хорошая и на неё же ссылаются, когда нужно быстро ввести в курс дела новичка. Список того, где уже облажались русские участники УКомбината — вот.

Проект внезапно созрел и нужно было пустить инвесторов. Команда немного размазана по планете, поэтому всем было примерно всё равно, где регистрироваться. Есть вообще типовой стартаперский набор: Кипр, прибалты, США, Сингапур, Люксембург. Но не пофиг было российскому стратегу, одному из инвесторов, он хотел на родине. При этом американское корпоративное правило наиболее гибкое + накоплена большая база прецедентов, то есть оно ещё и предсказуемое. А в штате Делавер наиболее квалифицированный суд, и его решения — просто золотой стандарт отрасли. То есть если у вас есть иностранные инвесторы, стоит выбор между Европой, Кипром и США. Из Латвии и Эстонии тяжело выскакивать при росте компании (и за сладкий старт придётся платить условиями дальше), Кипр хорош, но венчурные инвесторы часто ассоциируют его с «русские что-то там мутят», поэтому Делавер.

Поскольку у нас ИТ-бизнес в России, и мы знаем правила ведения ИТ-бизнеса в России, план был такой:

  1. Уговаривать стратега на любую зарубежную юрисдикцию (а для них бы это был первый опыт инвестиций в зарубежный проект);
  2. Как только они дадут добро, за недельку зарегистрироваться, например в Делавере, и принять деньги.

А если стратега не уговорим, то уйдем во все тяжкие согласования венчурной сделки с корпоратом в правовом поле РФ, что одно из самых экстремальных развлечений, доступных бизнесмену. Я наивно полагал, что основные проблемы будут в этой части.

Но нет. Переходим к мякотке.
Читать дальше →
Total votes 61: ↑59 and ↓2+79
Comments11

Information

Rating
2,422-nd
Registered
Activity