Pull to refresh

Technotext

Terraform: поиск оптимального написания кода

Level of difficultyMedium
Reading time18 min
Views6.2K

Всем привет и добро пожаловать!

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

Для начала давайте определим, что такое Terraform.

Terraform - это инструмент, который позволяет безопасно и эффективно создавать, изменять и управлять облачными и локальными ресурсами, и который реализует концепцию "инфраструктура как код" (IaC) - Terraform Intro. Он предоставляет декларативную модель. Это значит, что мы описываем конечное состояние инфраструктуры или конкретного ресурса, и нам не нужно описывать пошаговые инструкции. Он имеет свой язык описания - HashiCorp Configuration Language (HCL). Далее этот код преобразуется в вызовы к API провайдера. О том, как работает Terraform, можно ознакомиться в его официальной документации.

Теперь давайте ответим на вопрос, а нужен ли вообще Terraform. Мой ответ - да. И вот собственно почему:

Читать далее

Сборка и отладка прошивки IoT-модуля: Python, make, апельсины и чёрная магия

Level of difficultyEasy
Reading time22 min
Views3.5K

Когда имеешь дело с микроконтроллерами, а микроконтроллер — основа нашего IoT-модуля, постоянно приходится собирать и отлаживать прошивку. Пишешь код, компилируешь его, заливаешь на микроконтроллер. Потом надо убедиться, что всё работает как надо: подключить отладчик, подебажить.

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

С вами на связи Фарук Юссуф. Как и прежде, я тружусь инженером-разработчиком электроники и встроенного ПО в Whoosh. Сегодня расскажу историю о том, как мы захотели оптимизировать и расширить процесс сборки и отладки прошивки, не смогли остановиться и в итоге пришли к целому серверу для сборки и специальным удалённым узлам для отладки.

Будет make, Python, vscode, ansible, gdb, orangepi и немного чёрной магии.

Вуншпунш

IoT Geofencing: как мы сократили время определения функциональных зон, используя H3-индексы

Level of difficultyMedium
Reading time16 min
Views1.3K

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

Меня зовут Сергей Шилин, я руковожу разработкой электроники и встроенного ПО в Whoosh. В этой статье расскажу, почему не embedded-задача попала в embedded-отдел и как мы научили микроконтроллер считать H3-индексы и определять вхождение в любую функциональную зону за 0.1 секунды. Прошу под кат!

Вжух — и другая скорость

Пустите кошку в туалет или как мы изобрели новое устройство

Level of difficultyEasy
Reading time5 min
Views13K

Всем привет, меня зовут Саша и у меня не так давно появилась кошка. Как известно, кошка в доме появляется не одна, а с лотком. Лоток обычно ставят в туалете (запах, сами понимаете) и я не стал исключением. И вот после этого я столкнулся с проблемой…

Читать далее

Может уже сами с нейросетями сделаем дизайн для нашего продукта? От идеи до запуска на маркетплейс, пошаговая инструкция

Reading time14 min
Views19K

— Добрый день, хотим дизайн вот заказать для упаковки нашей продукции на маркетплейсах.
— Ой, ну это короче бюджет нужен.
— А по срокам как?
— Давайте сначала ТЗ составим, а там уже и сроки почувствуем.

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

В чём проблема?

Читать дальше →

Вспомнил школьную физику, и теперь продаю горячий воздух на Авито на 12 млн в год

Level of difficultyEasy
Reading time10 min
Views166K

Знаете, почему летает воздушный шар? 

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

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

Читать далее

Как я правил контраст и базовую палитру в дизайн-системе

Level of difficultyEasy
Reading time7 min
Views3K

Меня зовут Игорь Пешков, я дизайнер в KODE — IT-компании, которая занимается коммерческой разработкой. Хочу рассказать вам, как исправлял проблемы с контрастом в дизайн-системе одной крупнейшей в своей области экосистемы IT-продуктов (сами понимаете — NDA). 

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

Читать далее

Отбираем хлеб у нативных разработчиков: миграция с Kotlin/Swift на RN

Level of difficultyMedium
Reading time6 min
Views5.4K

Меня зовут Александр Чернов, я фронтенд-разработчик в KODE и я использую React Native в разработке мобильных приложений уже более семи лет. Сейчас расскажу вам, как мы у нативных разработчиков хлеб отбирали.

Читать, как «перевозили» приложение

Анонимная P2P-сеть внутри централизованного HTTPS-сервера: вшиваем паразитный трафик всеми правдами и неправдами

Level of difficultyHard
Reading time25 min
Views15K

Государственная цензура есть многогранный монстр, закрывающий путь не только к зарубежной информации посредством блокировки ресурсов и их методов обхода, в лице Proxy, VPN, Tor, но также и постоянно пытающийся подавлять неподконтрольные безопасные и анонимные коммуникации внутри самого себя. Гос.структуры ради этого готовы пойти буквально на любые ухищрения и запугивания, включая штрафы (дело Threema, отказ передачи ключей шифрования), уголовные преследования (дело Дмитрия Богатова, дело по VIPole), регулирование неконтролируемой криптографии (история запретов до 2016, запрет шифрования доменных имён), а также возможные бэкдоры в собственных криптоалгоритмах (Кузнечик и Стрибог). Рэкет становится для государства нормой жизни.

Читать далее

Неизбежное будущее Kubernetes: почему оркестратор должен пойти по пути Linux Kernel

Level of difficultyEasy
Reading time6 min
Views12K

Сейчас Kubernetes воспринимается как «готовое» и самодостаточное ПО — грубо говоря, как отдельная программа. Да, чтобы его использовать в проде, придется добавить к нему разных cloud native-инструментов: CNI, service mesh и т.п. штуковины. Однако всё же K8s выглядит именно как приложение (иногда его даже называют ОС для облаков). 

На мой взгляд, такое понимание Kubernetes заводит рынок в тупик. Очевидно, что сложность оркестратора должна расти, очевидно, что будет все больше сфер, в которых он будет использоваться и которые способны извлечь немало пользы из внедрения K8s. Если рынок не начнет смотреть на Kubernetes как на Linux Kernel, это заведет нас в тупик, и вот почему...

Читать далее

Различные вычисления, многопоточность, асинхронность и мультипроцессность в Python

Level of difficultyMedium
Reading time9 min
Views15K

Всем привет! Меня зовут Дмитрий Первушин, я лидер Python-компетенций трайба ИСУ в Сбере. 

Эта статья рассчитана на людей, которые уже знакомы с Python, хотя бы на уровне junior+. Я объясню, какие есть отличия и особенности в многопоточности, асинхронности и мультипроцессорности в Python, где и когда они используются. Как говорится в пословице: «Всё познаётся в сравнении», именно в таком стиле я подготовил примеры. Кроме этого, буду специально делать ошибки и рассматривать неправильные подходы, чтобы можно было сразу разобраться, убедиться и запомнить, почему так делать нельзя и какой другой подход в этом случае нужно использовать.

Читать далее

Маг молний

Level of difficultyEasy
Reading time4 min
Views5.3K

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

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

Читать далее

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

Level of difficultyEasy
Reading time14 min
Views8.7K

Боже, как я устал отбиваться от вопросов: «а какую нейросеть вы используете?».

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

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

Никакую, блин! Нет у нас нейросетей. Шок! Сенсация!

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

Масла в огонь еще подливают студенты и разные исследователи‑дилетанты. Обычно это люди с программистским бэкграундом, но без опыта в урбанистике и городском планировании. Они привыкли любую проблему решать в духе: «ща быстренько данных в ML модельку накидаем и она нам всё сделает». И каждый раз объяснять им, почему в урбанистике у них вряд ли из этого выйдет что‑то практически применимое, поднадоело. Так что я решил описать ключевые проблемы тут, на Хабре.

Итак, почему же не удается (и не удастся в обозримом будущем) засунуть в какую‑нибудь ИИ‑ML‑DeepLerning‑%еще N хайповых слов%‑модель карты и проекты существующей застройки и заставить ее сгенерировать вам хоть новый квартал, хоть новый город?

Читать далее

Разработка цифровой аппаратуры нетрадиционным методом: CGA видеоадаптер на SpinalHDL

Level of difficultyHard
Reading time127 min
Views4.6K

В предыдущей статье (ч.1, ч.2) я рассказывал как построить свою полностью открытую вычислительную систему на опенсорсных решениях — некую синтезируемую систему-на-кристалле, которая будет адаптирована под ваши задачи, в которой всё до последнего триггера находится под вашим управлением и не зависит ни от рыночной конъюнктуры, ни от политических решений. В этой статье я расскажу и покажу как добавить к этой СнК простейший видеоадаптер под тип старого доброго Color Graphics Adapter (CGA), но с современным (HDMI) интерфейсом, с графическим и текстовым режимами и аппаратным скроллингом для плавной прокрутки изображений. Как и в предыдущей статье, речь пойдет о проектировании аппаратуры на языке SpinalHDL и синтезе её для микросхем ПЛИС, используя опенсорсный тул. Все эксперименты я буду проводить на плате «Карно» с ПЛИС Lattice серии ECP5, но весь мой код, за исключением части касающейся настроек PLL, будет аппаратно независимым и легко адаптируемым под любой тип микросхем ПЛИС из поддерживаемых тулчейном Yosys/NextPNR.

Читать далее

Пионеры разработки

Level of difficultyEasy
Reading time10 min
Views14K

Короче, има…имаж.. Влад, как то слово? Имаджинируйте? Придумают тоже. Короче, представляйте. Башкирия. Село Зигаза, 600 человек. 1970-е годы. Войны уже давно нет, особого голода тоже, но все же — родившись в селе на 600 человек, что тебе светит? Поработать дояркой в колхозе, выскочить замуж за пастуха (за тракториста не светило по причине отсутствия тракторов), да нарожать детей побольше. 

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

Так я вошла в айти. 45 лет назад.

Читать далее

Котики умнее, чем кажется

Level of difficultyEasy
Reading time4 min
Views28K

Привет, Хабр!

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

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

Что там с котиками

Петлевая квантовая гравитация

Level of difficultyEasy
Reading time7 min
Views17K


Приветствую, уважаемое хабрасообщество. Представьте, что у вас есть прибор, способный заглянуть в масштаб планковской длины (~10-35 м). На этом уровне привычная картина пространства исчезает: вместо гладкой поверхности оно выглядит как сложная сеть мельчайших многогранников. Именно так описывает пространство теория петлевой квантовой гравитации (см. илл. выше).


Но почему же теория называется «петлевой»? Что скрывается за загадочными «петлями», какую роль они играют, и как эта теория помогает нам понять устройство Вселенной? Давайте разбираться!

Читать дальше →

Пишем Android приложение для фильтрации спам-звонков

Level of difficultyMedium
Reading time10 min
Views7.5K

Всем привет! Меня зовут Иван Чечиков. В этой статье я расскажу о своем пет-проекте - Android приложении, которое может идентифицировать нежелательные входящие звонки.

Подробности – под катом.

Читать далее

Вакуумное магнетронное напыление на дому

Level of difficultyMedium
Reading time10 min
Views18K

Привет, Хабр! Последнее время здесь появились очень интересные статьи по вакуумному и стеклодувному делу, вызывающие неподдельный интерес у публики. Как насчет двинуться дальше, и начать серию статей про изготовление микросхем на дому? Многолетнюю, разумеется. Я по другому не умею :)

Тут вам и легирование кремния, и фотолитография, и вакуумное магнетронное и термическое напыление металлов и оксидов на подложку.

Совершенно случайно мне подвернулись остатки от универсального вакуумного поста ВУП-4 и я решил с головой погрузиться в эту дорогую и сложную область инженерного дела. Вообще я не планировал напылять в этой серии, но меня уговорили.

Подробности подкатом

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

Level of difficultyMedium
Reading time12 min
Views74K

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

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

Читать далее