Как стать автором
Обновить

Разработка

Сначала показывать
Порог рейтинга
Уровень сложности

Способы цветовой сегментации в задачах детектирования дорожных знаков

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров677

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

На практике задача сегментации усложняется различиями в освещении, погодных условиях, наличием теней, бликов, а также загрязнением камеры. Это делает использование стандартного цветового пространства RGB неэффективным, поскольку оно неразрывно связано с яркостью. В связи с этим актуальной становится задача выбора более устойчивого цветового пространства – например, HSV, LAB или IHSL – для выделения дорожных знаков при помощи цветовой сегментации [1].

Читать далее

Как отключить рекламу в поисковой выдаче Яндекса и Google

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров3.3K

Всем привет! Меня зовут Андрей Симагин, я автор программы для технического аудита сайтов SiteAnalyzer, и сегодня мы рассмотрим новую версию браузерного расширения SiteAnalyzer SEO Tools, в котором добавлена возможность отображения поисковой выдачи Яндекса и Google без сопутствующей рекламы путем скрытия соответствующих блоков из контента страницы. Расскажем обо всем подробнее.

Читать далее

document.currentScript: что такое и с чем едят

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров2.6K


Сначала я недооценил document.currentScript, но оказалось, что он отлично подходит для передачи параметров конфигурации прямо в теги <script> — и это далеко не все.


Порой я натыкаюсь на давно существующие браузерные API в JavaScript, о которых, по идее, я должен был узнать гораздо раньше. Например, window.screen или метод CSS.supports(). К счастью, я понял, что не один такой. Помню, как однажды упомянул window.screen в посте и получил неожиданно много комментариев от людей, которые тоже впервые о нем слышали. Это меня немного приободрило — я почувствовал себя не таким уж глупым.


Видимо, дело не в том, как давно существует API, а в том, насколько он полезен в реальных задачах. Если window.screen почти нигде не используется, о нем легко забыть.


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

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

Альянс RISC-V. Цели создания, основные направления деятельности, проекты

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров1.6K

Еще несколько лет назад казалось, что на рынке процессорных архитектур перемен не будет: x86 прочно удерживал серверы и десктопы, а ARM доминировал в мобильных устройствах и в микроконтроллерной отрасли. Все новые инициативы выглядели либо нишевыми, либо обреченными на маргинальное существование. Но постепенно стало заметно: всё чаще в новостях упоминается странная аббревиатура — RISC‑V. То NVIDIA заявляет о поддержке, то Huawei инвестирует в разработку процессоров на его основе, то стартапы один за другим анонсируют новые решения, основанные на открытой архитектуре.

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

Россия не осталась в стороне от этой тенденции: для координации усилий по развитию отечественных технологий на базе RISC‑V был создан Российский альянс RISC‑V и настало время представиться и рассказать о том, кто мы такие, как создавался Альянс, кто стоял у истоков его создания и почему эта инициатива важна для технологической независимости страны. Погрузимся в историю и узнаем, основные цели Альянса, его ключевые направления деятельности и рассмотрим наиболее интересные проекты, реализуемые с использованием открытой архитектуры, которая объединила ведущие IT‑компании России.

Читать далее

Развёртывание ML-моделей в картинках

Время на прочтение6 мин
Количество просмотров3K

Всем привет! Меня зовут Алина, и ранее я вам рассказывала про то, как можно спроектировать Feature Platform. Сегодня я хочу рассказать про очень важный компонент ML-платформы — развёртывание ML-моделей, и затрону связанные с ним компоненты.

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

Читать далее

PAM в информационной безопасности: ценный актив или бесполезный сотрудник?

Время на прочтение7 мин
Количество просмотров360

PAM или партнерский менеджер — специалист, отвечающий за построение и развитие взаимовыгодных отношений между компанией и ее партнерами. Он выступает «связующим звеном» в коммуникации между сторонами, где каждый участник получает максимальную выгоду от сотрудничества. 

Читать далее

Проблемы данных ритейла и их решение через BI-систему

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров397

Представьте ситуацию: у вас есть доступ ко всем данным компании – о каждом клиенте, каждой транзакции, каждом движении товара. Но когда нужно принять стратегическое решение, вы понимаете, что не можете получить ответы на простые вопросы: какие товары приносят максимальную прибыль? Какие акции действительно работают? Где узкие места в логистике?

В этой статье я проведу детальную диагностику трех ключевых "болевых точек" ритейл-аналитики и покажу, как удалось их решить с помощью платформы AW BI.

Читать далее

Почему Rust так мало волнует производительность компилятора

Уровень сложностиПростой
Время на прочтение15 мин
Количество просмотров7.6K

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

Кроме того, наряду с обычными жалобами на время компиляции, я начал замечать от раздражённых разработчиков на Rust и подобные заявления: «Почему Rust Project не занимается активнее этой важной и очевидной проблемой? Почему с этим что-нибудь не сделают?». Я участник рабочей группы по производительности компилятора Rust, поэтому воспринимаю такие вопросы очень серьёзно. И, разумеется, у меня есть мнение по этому поводу. В этом посте я приведу свои размышления, способные служить ответами на эти (и похожие) вопросы.

Предупреждение: все выраженные в этом посте мнения исключительно мои и необязательно отражают точку зрения Rust Project (группы контрибьюторов и мейнтейнеров тулчейна Rust).

Читать далее

Когда O(n) мешает отбирать резюме в Росатоме

Время на прочтение9 мин
Количество просмотров20K
image

Главная проблема поиска сотрудников — предвзятость. Порой кажется, что наше резюме подходит под свою роль на 100 %, а рекрутер отклоняет его. Проблема с противоположной стороны баррикад: рекрутер должен отсмотреть по 200, 300 и более резюме в день. По разным данным, на каждое уходит всего лишь 6–10 секунд.

А что если можно решить эти две проблемы с помощью ML? Сделать модель, которая исключит любой байес и поможет рекрутеру объективно отбирать подходящих кандидатов (где «подходящесть» обусловлена красивой математикой!).

Мы это сделали. Оказалось, что если вы хотите добиться непредвзятости, то вам придётся внести в систему предвзятость. Оксюморон в статистике!

Что мы увидели:

  • Женатые и замужние — в топе: пока вы не уходите глубоко в анализ, этот быстрый фактор повышает ранг. Чем точнее ваша модель, тем меньше его вес.
  • Английский — плохо: знание английского почему-то работало как антипаттерн, снижая релевантность.
  • ОГУРЕЦ: кто-то зачем-то написал это слово в резюме. Оно попало в словарь модели и получило большой вес.
  • Иксель — люди пишут Excel как угодно, и само слово в правильном написании оказалось снижающим оценку.
  • К резюме может быть приложено много мусора. Самый эпичный пример: авиабилет Москва — Челябинск вместо резюме.

Но давайте начну с начала.
Читать дальше →

Гайд по техникам тест-дизайна: нюансы и механики. Часть 1

Уровень сложностиСредний
Время на прочтение38 мин
Количество просмотров1.4K

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

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

Тест-дизайн — одна из самых непростых тем в тестировании программного обеспечения. В блоге ЛАНИТ на Хабр я предлагаю вашему вниманию гайд, который поможет вам вспомнить тест-дизайн и его техники. Мы также проанализируем все нюансы и механики, которые могли ускользнуть от вашего внимания раньше. Осознание этих деталей позволит глубже понять инструментарий тест-дизайна и применять его более гибко в работе, определяя оптимальные методы для каждого случая.

Читать далее

Как мы пересоздавали читалку Яндекс Книг

Время на прочтение8 мин
Количество просмотров5.9K

Привет, Хабр! Меня зовут Дима, я фронтенд‑разработчик Яндекса. В этой статье я расскажу о том, как мы переписали наш ридер для электронных книг, создав универсальное решение для веба и нативных приложений.

Статья будет интересна фронтенд‑разработчикам. Из неё вы узнаете, как создать универсальное ядро для веба и натива, получить вместо запутанных асинхронных вызовов чёткие последовательности действий и убрать визуальные артефакты при одновременных пользовательских действиях.

Читать далее

ScyllaDB: как настраивать метрики в java-драйвере и параметры запросов для измерения их характеристик

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров398

Привет, Хабр! Это Александр Коваль, я разработчик IoT-сервисов в МТС Web Services. При работе с данными часто возникает вопрос: как быстро система может вернуть результат по определенным параметрам? Не является исключением и ScyllaDB.

Для ответа нужны инструменты измерения и возможность настраивать систему. Java-драйвер для ScyllaDB умеет передавать информацию о своей внутренней работе, и ему можно настроить отдельные компоненты. Звучит как отличный план — в этом материале я поделюсь результатами экспериментов с java-драйвером для ScyllaDB при различных запросах к данным.

Код, ссылки и ресурсы располагаются в GitHub.

Читать далее

Ретроспектива Vue 3, композаблы и Svelte. Материалы с митапа MskVue.js #13

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров1.5K

Митап MskVue.js #13 прошел 29 мая в офисе Lamoda. Вместе с сообществом MSK VUE.JS организовали три ярких доклада, разыграли мерч за лучшие вопросы и много общались со спикерами и друг с другом. Делимся материалами со встречи.

Читать далее

Ближайшие события

Используйте Camunda как удобный REST-движок для оркестрации и workflow — без необходимости работать с Java

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров3K

Я много общаюсь о микросервисных архитектурах с «не-Java-людьми» — будь то разработчики на C#, энтузиасты Node.JS/JavaScript или GoLang. Все они сталкиваются с необходимостью оркестрации в микросервисной архитектуре — или просто хотят использовать workflow, упорядочивание действий, обработку таймаутов, Saga и компенсации, а также другие полезные возможности.

Open Source BPM-платформа Camunda отлично подходит для этих задач. Ориентированность на разработчиков — один из ключевых принципов продукта, но при изучении документации может показаться, что она рассчитана в основном на Java-разработчиков. Платформа предоставляет множество точек расширения и интеграции, но всё это реализуется на Java. Значит ли это, что другим разработчикам путь закрыт?

Нет! На самом деле, запустить Camunda и работать с ней без знания Java очень просто — архитектуру можно выстроить так, чтобы писать код на любом удобном языке. В этом посте:

Читать далее

Как я делал свой первый прототип игры на Unity

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров2.8K

Вводные: всегда хотел работать в геймдеве, поэтому решил начать с малого — попробовать сделать хоть какой‑то прототип игры с нуля. С C# знаком на среднем уровне, с блендером на нулевом), с Unity чуть‑чуть (делал тетрис, и пытался сделать мультиплеер для него поверх Steam через Spacewar).

Изначально идея была сделать что‑то на минут 10–15, как обычно в голове много идей и мелочей, реализация которых поможет создать более приятный геймплей, но когда доходит дело до реализации, то приходит понимание, что не все так легко, как кажется.

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

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

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

Читать далее

От родовспоможения к системному анализу: как я поменял профессию после 40 лет в медицине

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров4.2K

Хабровчане, приветствую! Меня зовут Андрей Иванов, я системный аналитик в сфере медицины и здравоохранения. Но это сейчас, а до этого я 20 лет работал врачом, а после — руководителем медицинского информационно-аналитического центра.

Я хочу рассказать о своём опыте как в медицине, так и в системном анализе. Такая идея ко мне пришла после встречи со студентами и выпускниками Яндекс Практикума. Она была долгой, но я был удивлён — на пике мой рассказ слушали 84 посетителя, а до финала «досидели» 64 человека. Может, моя история будет интересна читателям и здесь. Буду рад, если кому-то станет хоть немного легче в трудной ситуации смены профессии.

Читать далее

Семь иллюзий Low code

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров6.6K

Low code стремительно ворвался в корпоративный ландшафт, чего от него никто не ожидал. Мы думали — ну, да, занятная вещица, пусть пользователи поиграют в программистов, лишь бы работать не мешали. А сегодня куда ни глянь, все хотят, чтоб даже у серьезных энтерпрайз-решений обязательно были какие-то хотя бы элементы лоукода. Но зачем?

Читать далее

Учимся читать SQL SELECT

Уровень сложностиПростой
Время на прочтение21 мин
Количество просмотров13K

Я отчётливо помню, как сидел на втором курсе на лабах по БД и долго и мучительно методом научного тыка подбирал порядок слов в SELECT-запросе с GROUP BY, чтобы он вернул нужный мне преподу результат. Потому что я не понимал, как работает SELECT, хотя был прилежным (на программистских курсах) студентом, ходил на все лекции и делал лабы за себя и пару "тех парней".

Двадцать лет спустя, когда я встал по ту сторону баррикад и начал сам вести лабы по БД, я столкнулся с той же самой проблемой уже у своих студентов. И, так как за двадцать лет я всё-таки понял, как работает SELECT, то придумал для них способ объяснения, который работает хорошо (в моей практике).

Читать далее

Самодельный SDR приемник на Zynq

Уровень сложностиСредний
Время на прочтение31 мин
Количество просмотров12K

В этой статье я расскажу о том, как я делал предельно дешевый КВ Web-SDR приемник на SoC Zynq.
Основа приемника - Б/У плата Antminer S9. Фактически этот проект является форком уже существующего приемника WEB-888, который, в свою очередь, является продолжением приемника KiwiSDR.

Читать далее

«300$ за корпус — вы серьёзно?». Показываю, из чего складывается эта сумма

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров42K

Недавно я опубликовал на Хабре статью про один из наших проектов — корпус эпилятора. Показал цену: примерно 300$ за корпус. И получил комментарии, что цена чудовищная и это ненормально.

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

Читать далее