Pull to refresh

Technotext

Как устроен китайский завод электроники глазами русского инженера

Level of difficultyEasy
Reading time11 min
Views67K

Меня зовут Андрей, я работаю в компании ГРАН Груп. Мы производим печатные платы от домашних до космических устройств. Я контролирую производство от запроса клиента до поставки готового продукта. А это моя первая статья на Хабр.

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

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

В статье покажем, как мы производим современные печатные платы на заводах в Китае.

Читать далее

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

Reading time11 min
Views12K

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

Традиционные подходы к тестированию на многих уровнях уже не успевают за реалиями разработки: ручное тестирование становится слишком трудоёмким, а написание unit- или end-to-end-тестов не всегда позволяет отследить именно визуальные изменения. И здесь на помощь приходит методология скриншотного тестирования — мощный инструмент для выявления визуальных багов, появляющихся в интерфейсе. Он позволяет убедиться в том, что ваш продукт отображается так, как задумано, и избавляет команду от многих сюрпризов.

Читать далее

Эксперимент. Нейросети снова рисуют картины из игры «Detroit: Become Human»

Level of difficultyEasy
Reading time17 min
Views3.6K

В видеоигре Detroit: Become Human (Детройт: Стать Человеком, 2018) несколько игровых персонажей-андроидов, и каждый обладает своей уникальной историей. Особый интерес представляет история андроида-помощника Маркуса, поскольку именно она раскрывает главный конфликт в мире Детройта.

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

Что же происходит в эпизоде и в чем суть эксперимента? Разбираемся по порядку.

Читать далее

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

Level of difficultyMedium
Reading time12 min
Views2.3K

Всем привет! Меня зовут Макс, и уже 14 лет как я вошел в ИТ и пока не планирую отсюда выходить. Последние 7 лет я не только сам пишу код, но и занимаюсь «выпасом котов». К написанию статьи меня побудила моя любовь к ссылкам на методы и желание поделится «кастомными» способами их использовать вне базовых классов java. Если вы задумывались об усилении гибкости приложения и преимуществах AOP, но вас отпугивают его недостатки, в статье предлагаю рассмотреть вариант получения тех же (ну или почти тех же преимуществ), но без раздражающих (по крайней мере меня) недостатков. Для использования идей из статьи не требуется каких‑то особых магических знаний, достаточно знать, что такое функциональный интерфейс.

Читать далее

Стереокамера машинного зрения c поддержкой ИИ на базе FPGA и Arduino Portenta H7

Reading time10 min
Views8.5K

В статье рассмотрен процесс проектирования модуля стереокамеры на базе двух монохромных сенсоров MT9V034. Для управления матрицами и сшивания картинки с двух видеопотоков используется FPGA Gowin GW2AR. Использование FPGA и сенсоров с глобальным затвором позволило точно синхронизировать время экспозиции, таким образом сшитое изображение содержит два кадра, которые снимают объект в одно и то же время с наносекундной точностью. Модуль подключается в качестве «шилда» к промышленной отладочной плате Arduino Portenta H7. Комбинированный видеопоток обрабатывается библиотекой машинного зрения OpenMV на Arduino. Разработка проекта ведется в специализированной IDE от OpenMV на MicroPython, что позволяет быстро прототипировать устройства с использованием алгоритмов машинного зрения. После отладки камера работает автономно, весь код исполняется микроконтроллером на Arduino. В библиотеке OpenMV реализовано большое количество функций обработки изображений, от базовых преобразований и фильтров, до машинного обучения. Поддержка TensorFlow Lite позволяет обнаруживать объекты на стереопаре, сопоставлять их и рассчитывать расстояние до этих объектов. Так же в библиотеке реализованы функции построения карты глубин, что позволяет использовать разработанную камеру для реализации алгоритмов автономной навигации.  

Читать далее

Selenoid на Android – от А до Я

Level of difficultyEasy
Reading time16 min
Views2.4K

Планируете внедрить или уже используете Appium-тесты для Android и задумываетесь о многопоточности? У нас есть для вас полный гайд, как реализовать это с помощью Selenoid – предварительно немного взбодрив образы для поддержки последних версий Android, и при этом сделав тестовую инфраструктуру стабильной, как молоток.

Читать далее

Как сократить время ответа в 2 раза, добавив одну строку кода

Level of difficultyMedium
Reading time9 min
Views39K

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

В этой статье мы поделимся:

1. Описанием, как мы использовали инструменты Jaeger и Grafana для выявления узких мест в производительности, что привело к выявлению критических проблем со сборщиком мусора;

2. Анализом влияния различных настроек сборщика мусора на время ответа, что позволило сократить его вдвое для 99% запросов;

3. Когда и почему стоит рассматривать изменение стандартных настроек сборщика мусора (на примере нашего случая).

Читать далее

Как небольшой команде переехать на ClickHouse: на какие грабли мы наступили и о каких фишках не знали

Level of difficultyEasy
Reading time21 min
Views17K

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

Меня зовут Петр. Я работаю инженером по данным в Okko и обожаю ClickHouse. 

Примерно в середине прошлого года мы начали переезжать с PostgreSQL на ClickHouse. Одной из главных причин переезда была низкая производительность: среднее время аналитического запроса составляло около минуты. Сейчас, после переезда, среднее время запроса в аналитическом кластере — около 2 с. И это не предел.

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

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

В этой статье не будет объяснений почему для переезда мы выбрали именно этот инструмент. Не будет и глубокой теории о его внутреннем устройстве. Отметим лишь: в правильных руках ClickHouse — одна из самых быстрых колоночных СУБД для OLAP запросов.

Читать далее

Как создать дашборд в Superset: гайд для новичков и полезные лайфхаки

Level of difficultyEasy
Reading time16 min
Views23K

Superset не самый новый bi-инструмент, но его популярность продолжает расти. На мой взгляд, он достаточно прост в освоении, но все же требует некоторых усилий и времени, чтобы разобраться куда тыкать, чтобы загрузить данные и нарисовать красивый отчет. Лично я за свою карьеру в IT уже второй раз сталкиваюсь с необходимостью переезда на этот инструмент. Он снова новый для компании и многие сотрудники с ним раньше не работали. Поэтому я и решила написать статью-шпаргалку, которая поможет в несколько кликов создать работающий дашборд и всегда будет под рукой.

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

Читать далее

Укрощаем мажорные обновления: сценарий обновления системных данных каталога без лишней боли

Level of difficultyMedium
Reading time15 min
Views1.1K

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

Меня зовут Кристина Демидович, я DevOps‑инженер в СберТехе, занимаюсь автоматизацией в команде СУБД Pangolin — это целевая СУБД в Сбере и не только. Я расскажу о нашем подходе к обновлению СУБД Pangolin, который позволил нам превратить часть мажорных обновлений в обновление данных системного каталога — что проще, удобнее и занимает вдвое меньше времени.

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

Читать далее

Использование лидара от робота-пылесоса для системы предотвращения столкновений в автономных роботах

Level of difficultyMedium
Reading time22 min
Views18K

Как прочитать данные с недорогого лидара от робота-пылесоса на ESP32, визуализировать показания на кольце из 12 светодиодов и даже интегрировать решение в робота для участия в соревнованиях.

Читать далее

Физика + нейросети: суть алгоритма, который принёс Хинтону и Хопфилду Нобелевскую премию

Level of difficultyMedium
Reading time6 min
Views16K

Аналитический центр red_mad_robot собрал для вас главное, что нужно знать о Нобелевской премии 2024 по физике.

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

Читать далее

Как AI-агенты ускоряют работу девелопера: автоматизация данных и управление знаниями

Reading time8 min
Views6.5K

Привет! На связи команда NDT by red_mad_robot. Рассказываем, как создавали смарт-платформу с двумя AI-агентами для группы компаний ФСК — одного из крупнейших российских девелоперов. Система автоматизировала работу с данными и значительно снизила нагрузку на сотрудников технической поддержки и коммерческого департамента.

Читать далее

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

Level of difficultyEasy
Reading time4 min
Views8K


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

Читать далее

От новостей до идей клиентов: управляем ченджлогом и роадмапом

Level of difficultyEasy
Reading time8 min
Views960

Всем привет! На связи «Инферит Клаудмастер». Я Милена, технический писатель, и пару месяцев назад уже делилась в статье, как в две руки актуализирую портал документации, чтобы вся информация в нём была актуальная и полезная.

На этот раз хочу рассказать:

- о том, почему ченджлог и роадмап — пользовательская документация,

- о ключевых преимуществах ведения обоих видов документации,

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

Читать далее

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

Reading time10 min
Views220K

Если кратко, то производитель с продавцом обманули с каждой характеристикой, начиная от основного чипа, объемов ОЗУ, накопителя и заканчивая камерами, аккумулятором и экраном. Полный фейк в красивой упаковке.

Детали под катом.

Читать далее

Как устроен робот-доставщик Яндекса: от восприятия до планирования движения

Reading time15 min
Views29K

Уже пять лет по улицам Москвы колесят роботы‑курьеры Яндекса, доставляя нам еду из любимых ресторанов и магазинов быстрее, чем мы успеваем проголодаться. На пути им встречается много препятствий: от безобидной клумбы, которую можно просто объехать, до восторженных детей (и иногда взрослых), от которых порой не так просто уехать.

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

Привет, меня зовут Тая, и я ML‑разработчик в команде восприятия робота‑доставщика. Сегодня я впервые детально расскажу о технологиях, благодаря которым робот‑доставщик Яндекса успешно доставляет заказы. Разберу ключевые компоненты системы, от сенсоров до алгоритмов принятия решений, и объясню, как они взаимодействуют. Из статьи вы узнаете, что происходит «под капотом» нашего робота во время его путешествий по городу.

Готовы погрузиться в мир автономной доставки?

Поехали!

Как потреблять API с ограничением по RPS в .NET приложениях

Level of difficultyEasy
Reading time11 min
Views16K


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

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

Но теперь на Хабре есть эта статья, которая научит отправлять запросы из HttpClient так, чтобы не получать 429 Too Many Requests.
Читать дальше →

Умная кодогенерация: как AI-платформа помогает строить микросервисную архитектуру

Level of difficultyMedium
Reading time8 min
Views3.7K

Привет! Я лид backend-разработки red_mad_robot, Илья Трусов, и я создал инструмент Meroving, который помогает оптимизировать рутинные задачи, а иногда полностью их делает за разработчика. Например, монотонное написание однотипного кода или бесконечное перекладывание JSON-файлов. О том, как создавался и зачем нужен Meroving, рассказываю в статье.

Читать далее

Как добиться успеха на «ИЗИ» при общении с незнакомыми людьми

Level of difficultyEasy
Reading time5 min
Views5.9K

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

Читать далее