Обновить

Разработка

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

Как продакту выжить в мире ИИ-фичей

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели8.9K

Привет! Меня зовут Миша Хаджинов — я продакт в DS-департаменте Авито и уже более семи лет занимаюсь разработкой продуктов на основе технологий машинного обучения и LLM. За это время успел пройтись по всем возможным граблям, поэтому решил поделиться опытом, как их можно было бы избежать. Расскажу о рабочем пайплайне, который поможет добиться успеха в разработке с первого раза. Статья будет полезна продактам, которые сталкиваются с ИИ впервые, а также разработчикам без профильной экспертизы.

Читать далее

Книга: «Кото-математика»

Время на прочтение3 мин
Охват и читатели21K

Привет, Хаброжители! Сегодня у нас открылся предзаказ на книгу «Кото-математика». Хотим вам рассказать про нее побольше в этом посте.

Мяу-математика? Именно! В своей книге Дэниел М. Лук превращает скучные числа в захватывающие приключения, где каждый урок ведет... кот!

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

Читать далее

Небольшой экскурс в историю, или почему хз самый частый ответ в мире ИИ

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

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

Читать далее

Забудьте про print(): Современное и красивое логирование в Python с помощью Loguru

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели25K

Все мы начинали с print() для отладки, но в серьезных проектах это превращается в хаос. Стандартный logging? Мощно, но громоздко. Пора это исправить.

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

Читать далее

Как мы превратили цифровое ТВ в радар

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

Как мы превратили цифровое ТВ в радар

Open Source проект по мониторингу воздушного пространства на SDR

Зачем вообще делать радар из телевизора?

Традиционные радиолокационные системы (РЛС) — это огромные антенны, киловатты мощности, разрешения на частоты и бюджеты уровня «военного отдела». Нам же хотелось видеть небо, не нарушая ни законов физики, ни законодательства.

Так родилась идея собрать пассивную когерентную локацию (PCL) — систему, которая ничего не излучает, а просто слушает уже существующие сигналы в эфире.
FM-радио, LTE, цифровое ТВ — всё это мощные «осветители», которые и так покрывают территорию. Почему бы не использовать их?

Мы выбрали сигнал DVB-T2 (546 МГц) — стабильный, мощный, и что особенно приятно — с известной структурой (OFDM).

Результат? Получился радар без передатчика, который можно запустить хоть на балконе. И да, всё это — на полностью open source стеке.

Читать далее

Как выбрать VPS для WordPress: оптимальная конфигурация для любого сайта

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели8.5K

Несмотря на обилие различных онлайн-конструкторов сайтов (вроде Tilda), WordPress остаётся одним из самых популярных движков. Однако сайт, созданный на WP, нужно где-то размещать, и в этом отлично помогает VPS-сервер. Благодаря гибкости в выборе конфигурации, можно легко собрать сервер под проект любого масштаба. И в этой статье мы бы хотели рассмотреть несколько конфигураций VPS под разные проекты на WordPress.

Читать далее

Сила оттенков серого: компьютерное зрение с нуля

Уровень сложностиПростой
Время на прочтение16 мин
Охват и читатели16K

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

Мне захотелось понять, насколько далеко я смогу зайти, оставив в computer vision только самый минимум: одни лишь 8-битные изображения в градациях серого; никаких сложных структур данных, старый добрый C, немного байтовых массивов и единственный файл заголовка. В конце концов, изображение — это ведь просто прямоугольник из чисел, не так ли?

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

Читать далее

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

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

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

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

Поехали!

Что происходит внутри Angular и React при решении одних и тех же задач

Уровень сложностиПростой
Время на прочтение23 мин
Охват и читатели17K

React — популярная библиотека JavaScript, которая заслуженно пользуется популярностью у фронтендеров. А вот Angular часто называют избыточно усложненным и даже отчасти устаревшим. Мне довелось поработать на реальных проектах и с тем, и с другим, каждый раз проходя путь от «да как на этом вообще можно работать» до «человечество не придумало ничего лучше».

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

Читать далее

Главная проблема «чистых архитектур»

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

Откройте любой пулл‑реквест в проекте с любой «чистой архитектурой» и вы скорее всего увидите не обсуждение бизнес‑логики, а срач. «Это нельзя класть в UseCase, это логика домена!», «Зачем тут еще один DTO, мы же просто поле прокидываем!», «Этот интерфейс не нужен, у нас никогда не будет другой реализации!». Полагаю, очень много людей с таким сталкиваются.

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

Читать далее

Проблемы контурных карт: анализ графики Europa Universalis 5

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

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

Читать далее

Чем же крут язык Zig?

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели15K

Не думаю, что за мою 45-летнюю карьеру какой-то другой язык удивлял меня сильнее, чем Zig. Могу с уверенностью сказать, что Zig — это не только новый язык программирования, но и, на мой взгляд, совершенно новый способ написания программ. Задача этого языка — далеко не только замена C или C++.

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

Читать далее

Конформанс-тестирование: как мы сертифицировали базовую станцию YADRO

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

Привет, Хабр! Меня зовут Анна Курина, я старший инженер по тестированию в отделе бокс-тестирования базовой станции LTE в YADRO. Сегодня я расскажу, как мы проходили сертификацию базовой станции: проверяли соответствие российскому законодательству и спецификациям 3GPP. А еще мы разберемся с малознакомым для широкой аудитории QA-инженеров видом тестирования: тестированием на соответствие (conformance testing). Оно позволяет тестировщику окунуться в реальную эксплуатацию оборудования, а не просто провести тесты и забыть о «железе».

Читать далее

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

Карты, деньги, два бага: из чего состоят современные банкоматы и как их атакуют хакеры

Уровень сложностиПростой
Время на прочтение17 мин
Охват и читатели11K

Всем привет! Вновь на связи аналитики из команды PT Cyber Analytics. В этой статье хотим поделиться экспертизой, полученной в ходе наших исследований в области защищенности банкоматов.

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

В первую очередь разберем устройство банкоматов и расскажем об основных видах атак на них. А после — рассмотрим некоторые виды актуальных атак, а также дадим рекомендации по их предотвращению.

Читать далее

Прогресс видеокодеков и большое сравнение российских видеосервисов

Уровень сложностиСредний
Время на прочтение19 мин
Охват и читатели30K

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

«Измерение качества видео — это лишняя операция. Бизнес — это вообще-то про деньги. Поэтому в бизнесе главное — это бизнес-метрики: user retention, DAU, MAU и вообще ARPU. А все эти ваши PSNR, SSIM, VMAF — от лукавого. Если пользователи платят деньги и не отписываются, значит всех всё устраивает и это главная метрика качества».

«И вообще в свое время в Toyota был внедрен подход Lean Manufacturing, где одна из «семи потерь» — это потери из-за лишних этапов обработки (waste on over-processing), к которому, очевидно, относится измерение качества. Эти материи проходят на курсах MBA, которые довольно дороги. Поэтому далеко не все российские технари в теме этих важнейших понятий и не в состоянии осознать их критическую важность для бизнеса компаний».

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

«Слушай, а почему у меня на даче YouTube через Роскомнадзор работает лучше Rutube без Роскомнадзор

(видеоверсия — доклад на VideoTech доступен тут)

Ну-с, господа, «которых всё устраивает!» Поехали! 

Читать далее

ИИ простыми словами

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

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

Читать далее

Сезам, грузися! Установка Windows XP на древний ноутбук без физических носителей

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

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

За каких-то 500 йен (260 рублей) такое чудо забрать просто обязательно. Правда беда вылезла, откуда не ждали.

После подкидывания блока питания оказалось, что винчестер девственно чист. Однако попытки загрузиться с флешки, внешнего диска, или даже внешнего флопика, результата не приносили — неумолимо вылезала надпись "Operating System Not Found", да и названия устройств в биосе не появлялись.

Беглый гуглёж показал — ранние серии X40 были очень часто подвержены внезапной смерти мультиконтроллера. Буквально подышишь не в ту сторону, втыкая флешку — и вот у тебя уже нету ни USB, ни звука.

Можно было бы просто кинуть винчестер в USB-переходник и залить образ с другого компьютера, но и тут подстава — винчестер в нём 1.8 дюйма, и на шину IDE с напряжением до 3.3 вольта, поди найди такой адаптер. Вкладываться в покупку переходника, SSD и ещё адаптера с USB на mSata тоже не хотелось, ибо уже жаба задушит :-)

Однако, в нём всё ещё есть опция загрузки по сети через PXE, может, это и спасло бы?

Читать далее

Repository Pattern в управлении базами данных: пример интеграции NocoDB в Django

Время на прочтение8 мин
Охват и читатели11K

Классический сценарий: есть база данных и приложение на бэкенде. Для подключения достаточно знать адрес, порт, имя пользователя, пароль — и прямой доступ перед вами. Но что делать, если необходимо подключить no-code базу данных, которой можно управлять только через REST API? Есть ли способ интегрировать такие подключения в логику «красиво», не поломав архитектуру?

Привет, Хабр! Меня зовут Влад, в свободное время я занимаюсь разработкой. В этой статье расскажу, как мне удалось относительно нативно интегрировать работу с платформой NocoDB на бэкенде, какие можно использовать паттерны и зачем мне понадобилось разработать собственный Python-модуль. Подробности под катом!

Читать далее

В поисках компактного ЛБП

Уровень сложностиПростой
Время на прочтение16 мин
Охват и читатели20K

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

Речь пойдёт о простейшем самодельном компактном регулируемом маломощном источнике питания, также известном среди радиолюбителей и им сочувствующих как «лабораторный блок питания» (ЛБП), собранном из подручных средств в виде готовых китайских модулей и наборов. С его помощью можно налаживать прочие самодельные творения. Конструкции подобного рода сейчас довольно востребованы, и, возможно, вам окажется полезным мой вариант.

Читать далее

Лидары в автономном транспорте: почему важна длина волны лазера

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

Привет, друзья! На связи Алексей Разин. Я работаю инженером‑оптиком в Яндексе и уже четвёртый год занимаюсь разработкой лидаров. Мы с командой сделали несколько устройств, и сегодня я хочу поделиться с вами своими мыслями и опытом в сфере разработки лидаров — приборов, которые играют ключевую роль в развитии автономного транспорта. 

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

Читать далее