Обновить
@resetmeread⁠-⁠only

Скромный пастух нулей и единиц…

Отправить сообщение

Эволюция диагностики аккумуляторов Makita: от Arduino OBI к автономному веб-интерфейсу на ESP32

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

Каждый, кто работает с профессиональным инструментом Makita, знает, что их аккумуляторы — это не просто «банки» с энергией. Внутри скрывается сложная система управления (BMS), которая хранит массу полезной информации: от количества циклов заряда до напряжения на каждой ячейке. Однако получить эти данные без специального оборудования невозможно.

Несколько лет назад сообщество энтузиастов подарило нам проект OBI (Open Battery Interface) — решение на базе Arduino и Python, которое впервые позволило заглянуть «под капот» этих батарей. Это был настоящий прорыв, который послужил отправной точкой и для моего проекта. Но, как и у любой технологии, у него были свои ограничения. Я поставил перед собой цель создать более современное, удобное и полностью автономное устройство. Эта статья — история его разработки, от идеи до финальной реализации.

Читать далее

Хватит бороться с ошибками CORS: разберемся, как они работают раз и навсегда

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

Вы когда-нибудь видели в консоли сообщение вроде: «Access to fetch at '…' from origin '…' has been blocked by CORS policy»? Это как в том фильме: «Суслика видишь? — А он есть». CORS не бросается в глаза, пока все работает, но в нужный момент пресекает недопустимые действия. Например, чтение ответа на кросс-запрос без разрешения сервера.

Меня зовут Баир, я разработчик в команде fuse8. В этой статье я отвечу на вопросы о том, зачем была создана CORS политика, как она устроена под капотом, почему простого действия типа «поставить заголовок на бэке» может быть мало, и какие безопасные паттерны стоит выбирать во фронтенде.

Читать далее

Глобальный упадок качества ПО: как катастрофа стала нормой

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

Утечка оперативной памяти в Apple Calculator достигает 32 ГБ.

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

Случись такое в 2000-х, это бы привело к внесению срочных патчей и служебной проверке. Сегодня же это лишь очередной баг-репорт в очереди.

Мы урегулировали программные катастрофы такой степени, что утечка 32 ГБ в калькуляторе уже не удивляет. И дело не в ИИ. Кризис с качеством ПО начался за несколько лет до появления ChatGPT. ИИ лишь стал дополнительным инструментом в руках некомпетентных людей.

Читать далее

Великий крах качества программного обеспечения: как мы нормализовали катастрофу

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

Мы переживаем величайший кризис качества программного обеспечения в истории вычислительной техники. Калькулятор теряет 32 ГБ оперативной памяти. ИИ-помощники удаляют рабочие базы данных. Компании тратят 364 миллиарда долларов, чтобы избежать решения фундаментальных проблем.

Читать далее

Выжимаем из Go скорость до последних наносекунд

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

Будем оптимизировать программы на Go. Выжимать последние наносекунды, чтобы код приближался по скорости к Си или ассемблерному. Цель - скорость, чтобы процессор был загружен на 100% при высокопроизводительные вычислениях.

Читать далее

Разработка MCP-сервера на примере CRUD операций

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

Model Context Protocol (MCP) — это единый стандарт разработки API для сервисов, с которыми могут взаимодействовать LLM.

В этой статье на простом примере разберем, как создать свой MCP-сервер и как использовать его в связке с LLM.

Мои курсы: Разработка LLM с нуля | Алгоритмы Машинного обучения с нуля

Читать далее

Балансировка нагрузки: проблемы, решения, практические рекомендации

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

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

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

Читать далее

Векторный анализатор NanoVNA для радиолюбителей

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

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

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

К счастью, сегодня практически каждому радиолюбителю доступен такой прибор, как векторный анализатор цепей Vector Network Analyser (VNA), с успехом решающий все перечисленные выше задачи.

Читать далее

Уроки по электрическим цепям — линии передачи

Время на прочтение10 мин
Охват и читатели270K
Ещё не начав читать статью, попробуйте подумать над вопросом: побежит ли ток, если подключить к батарейке очень длинный провод(более чем 300 тысяч километров, сверхпроводник), если противоположные концы провода никуда не подключены? Сколько Ампер?

Прочитав эту статью, вы поймёте в чём смысл волнового сопротивления. Из лекций по теории волн я вынес только то, что волновое сопротивление — это сопротивление волнам. Большая часть студентов, кажется, поняла ровно то же самое. То есть ничего.

Эта статья — весьма вольный перевод этой книги: Lessons In Electric Circuits
Статьи по теме: На Хабре: Контакт есть, сигнала нет
Трэш в Википедии: Длинная линия

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

Началось: Роскомнадзор приступил к проверкам и начал рассылать предпринимателям первые требования по новому закону

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

1 сентября заработали новые положения закона о персданных. Для всех предпринимателей и компаний это новые правила и ответственность — местами штрафы достигают 15 000 000 рублей.

Подготовиться к нововведениям успели далеко не все.

Сейчас РКН приступил к проверкам и мы уже получили одно из первых «писем счастья». Давайте покажу, на что теперь обращает внимание РКН и как не попасть на новые штрафы.

Читать далее

Группировка сабтестов в Go: от простого к сложному

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

Команда Go for Devs подготовила перевод статьи о том, как правильно группировать сабтесты в Go. Автор показывает, что в большинстве случаев достаточно держать тесты плоскими, а когда нужна разная инициализация и очистка — добавить лишь один уровень вложенности. В статье разбираются плюсы и минусы разных подходов: от ручных t.Run до reflection-хаков и сторонних библиотек.

Читать далее

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

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

Привет, Хабр! Я Михаил Зуев — Data Scientist из команды затрат корпоративных
клиентов Сбера. Мы много предсказываем, классифицируем и прогнозируем.
Впервые столкнувшись с последним и проведя исследование по этой теме, я
столкнулся с большим количеством неструктурированной информации. Эта статья —
одновременно описание моего пути и небольшое упорядоченное наставление по
анализу и прогнозированию временных рядов, которое я сам хотел бы получить.

Читать далее

От GPT-2 к gpt-oss: анализ достижений архитектуры

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

📝 Описание

На этой неделе разбираем релиз GPT-OSS — первых полностью открытых моделей OpenAI с момента GPT-2 в 2019 году. Две модели: gpt-oss-20b и gpt-oss-120b представляют собой современные LLM с архитектурой MoE (Mixture of Experts), оптимизированные для рассуждений и способные работать на одном GPU благодаря квантованию MXFP4.

Читать далее

Байесовский анализ и временные ряды в прогнозировании отказов оборудования на примере нефтегазовых компаний

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

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

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

Читать далее

Улучшаем качество приёма с помощью фильтров и малошумящих усилителей

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

Всем хороши приёмники SDR, но у них есть неприятная особенность — низкий динамический диапазон. Особенно это относится к недорогим устройствам.

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

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

Все эти сигналы попадают на вход аналого-цифрового преобразователя АЦП SDR-приёмника и вызывают перегрузку и появление «ложных» сигналов в результате комбинации частот мощных станций. При этом приём слабых сигналов на нужных вам частотах может стать недоступным.

В недорогих приёмниках SDR, как, например, RTL-SDR, используются 8-разрядные АЦП с низким динамическим диапазоном. Конечно, есть приёмники с разрядностью 14-16 бит. У них динамический диапазон больше, но и стоимость заметно выше. 

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

Читать далее

Топ-30 бесплатных нейросетей, которые облегчат вашу жизнь

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

Скажу честно: первое, о чем я подумал, когда услышал про эту тему, это Робо-няня из «Смешариков». В детстве она казалась мне немного тревожной, но ее способность делать все сразу впечатляла. Тогда я думал: как было бы хорошо, если бы такие технологии были у каждого.

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

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

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

Приятного чтения!

Читать далее

Pytest. Гайд для тех, кто ни разу про него не слышал

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

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

Всем интересующимся — добро пожаловать под кат!

Читать далее

Трюк, который раньше ускорял Python, теперь лишь захламляет код

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

Команда Python for Devs подготовила перевод статьи о том, почему любимая оптимизация Python — присваивать глобальные функции локальным переменным — больше не даёт выигрыша. CPython 3.11 стал умнее, и старый хак l = len уже почти бессмыслен.

Читать далее

Почему E = mc²: подробное объяснение с минимумом формул и максимумом смысла

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

28 сентября 2025 года празднуется 80-летие атомной промышленности. А ещё в 2025-м году исполняется 120 лет, как Эйнштейн вывел формулу эквивалентности массы и энергии (в контексте его теории, не отрицая вклада других исследователей - мы поговорим и про них). Представляю вам текстовое изложение моей лекции, посвящённой этим событиям. Я не физик, но специализируюсь в теории и истории энергии и энергетики, поэтому не могу пройти мимо истории и смысла самой знаменитой формулы. Я попытался дать наиболее простое и в то же время полное объяснение этой формулы, с позиции современных знаний о физических явлениях. Я искал подобные объяснения во многих источниках, но либо натыкался на лес формул без пояснения их смысла, либо на что-то простенькое и поверхностное. Итак, [еще одно] объяснение смысла E=mc^2 . Углубленные знания в физике и математике не требуются. Критика и дополнения приветствуются!

Читать далее

Дженерики в Python, простыми словами

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

Если вы только начинаете изучать Python и слышите слово дженерики, скорее всего в голове сразу каша: «что это вообще такое?». На самом деле дженерики - это очень простая идея. Представьте, что у вас есть коробка. В коробку можно положить игрушки, яблоки, книжки - всё что угодно.

Но иногда вы хотите, чтобы в коробке лежали только яблоки. А иногда - только игрушки. И вот тут вам помогают generics.

Читать далее

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность