Pull to refresh
16
0
Send message

Как я собрал настоящую Hi-Fi аудиосистему за 125 тыс. рублей

Level of difficultyEasy
Reading time10 min
Views33K

Привет, Хабр! Меня зовут Иван. Я инженер-проектировщик и провожу много времени за компьютером, рисуя схемы. По совместительству я увлеченный меломан с многолетним стажем. Несколько лет назад я решил оборудовать свое домашнее рабочее пространство достойной аудиосистемой. Но как ее собрать, если семейный бюджет не резиновый, а в стартовый комплект входят только средней мощности ПК и полочные колонки DALI Zensor 1? Мне понадобилось 125 тысяч рублей и 12 месяцев работы, чтобы слушать мастер-записи песен австрийского продюсера Курта Хауэнштайна (Supermax) в достойном их качестве. Своим опытом поделюсь в этой статье в блоге ЛАНИТ. 

Читать далее
Total votes 45: ↑38 and ↓7+40
Comments83

Тысяча и одна библиотека С++

Reading time65 min
Views29K

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

Столкнувшись много раз подряд с тем, что найти что-то толковое довольно непросто, я решил попробовать распутать это узел и предложить для русскоязычных читателей свой справочник классных библиотек на С++. Я исходил из этого источника. Это очень многогранный и объемный список библиотек языка С++, но, скажем так, у меня были к нему вопросы. Потому я сделал перевод, затем значительно улучшил его в плане содержания (далее объясню, как, почему и зачем). На выходе получилось около 1000 библиотек. Как в сказке). Они, конечно, не покрывают все возможные задачи и предметные области, но поверьте, они затрагивают действительно многое.

Прикоснуться к сокровищнице языка С++
Total votes 82: ↑81 and ↓1+92
Comments23

Создание процессора с нуля для чайников

Reading time18 min
Views40K

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

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

В данной статьей мы пройдем путь создания процессора от единичного транзистора до работающего 8-битного процессора, и напишем свой ассемблер для него.

Читать далее
Total votes 112: ↑112 and ↓0+138
Comments71

Контролируем чистоту воды с Home Assistant

Level of difficultyEasy
Reading time4 min
Views13K

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

Читать далее
Total votes 20: ↑16 and ↓4+19
Comments46

STM32. Процесс компиляции и сборки прошивки

Level of difficultyEasy
Reading time30 min
Views28K
Многие из начинающих разработчиков софта для микроконтроллеров реализуют свои проекты исключительно в средствах разработки, которые предоставляются производителем. Многое скрыто от пользователя и очень хорошо скрыто, из-за чего некоторые воспринимают эти процессы сродни настоящей магии. Я, в свою очередь, как человек в пытливым умом и природной любознательностью, решил попробовать собрать проект без использования IDE и различного рода автоматизаций.

Так родилась идея для этой статьи: не используя ничего, кроме текстового редактора и командной строки, собрать проект мигания светодиодом на отладочной плате STM32F0-Discovery. Поскольку я не до конца понимал, как происходит процесс компиляции и сборки проекта, мне пришлось восполнять пробелы в знаниях. Разобравшись с этим вопросом, я подумал — а почему бы не рассказать другим об этом?

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

Читать дальше →
Total votes 107: ↑106 and ↓1+122
Comments67

Учет электроэнергии для умного дома — zemismart SPM02

Level of difficultyEasy
Reading time4 min
Views20K

Достаточно долгое время искал для своего умного дома датчик учета электроэнергии, сначала присматривался к Tuya Smart Life 3 Phase WiFi Energy KWH Meter, но места в щитке у меня не было (думал повесить его за щитком), потом думал собрать на ESP32, но нужно было собирать три устройства - ввод в квартиру у меня 3х фазный, но совсем недавно на рынке появился миниатюрный датчик от известного производителя электроники zemismart - SPM02-D2TZ (у производителя также есть однофазное устройство - SPM01).

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments33

Принципы непрерывного рефакторинга

Level of difficultyHard
Reading time23 min
Views13K

Работа со старым кодом для многих команд является частью повседневных обязанностей. За свою карьеру я видел и применял разные способы борьбы с тяжестью легаси. Они обычно сводились к одному из трёх основных сценариев:

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

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

«Нужен порядок и учёт»: делаем отдельные коммиты с чистками, но нерегулярно — только когда в дело берётся соответствующий тикет. Правда, тикеты на рефакторинг почему‑то регулярно получают самый низкий приоритет во время планирования и маринуются в беклоге месяцами. Но что уж тут поделать?

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

За прошедший год я нащупал и отточил ещё один подход, который лишён указанных недостатков. И теперь готов поделиться им с вами.

Читать далее
Total votes 22: ↑22 and ↓0+22
Comments20

Архитектура Хорошо Поддерживаемого драйвера для I2C/SPI/MDIO Чипа

Level of difficultyEasy
Reading time11 min
Views9.6K

В программировании микроконтроллеров часто приходится писать драйверы периферийных микросхем. Зачастую это 60% всего кода большинства проектов. В этом тексте я написал несколько общих нюансов разработки драйверов периферийных чипов.

Эти правила "написаны кровь".

Читать далее
Total votes 21: ↑14 and ↓7+11
Comments26

Умный дом на Raspberry Pi и Home Assistant: добавляем диммеры и реле Wiren Board

Level of difficultyEasy
Reading time10 min
Views29K

К нам обратился Петр из Минска, который решил рассказать о своем опыте сборки умного дома. Он выбрал популярную платформу Raspberry Pi и интегрировал домашние устройства в Home Assistant.

Но со светом возникли проблемы: Петр запланировал везде диммирование, причем диммеры должны работать, даже когда контроллер выключен. Здесь как раз подошли модули Wiren Board. Но как сделать так, чтобы эти модули заработали под Home Assistant?

Петр установил шлюз Modbus-Ethernet и написал на Python интеграцию модулей Wiren Board в Home Assistant.

Мы посетили умный дом Петра и спешим поделиться с читателями подробностями.

Читать далее
Total votes 24: ↑24 and ↓0+24
Comments29

От желания управлять газовым котлом удалённо до полной автоматизации отопления дома

Level of difficultyMedium
Reading time6 min
Views39K

В статье расскажу про свой путь разработки DIY железок для работы с Home Assistant с целью автоматизации отопления в частном доме.

Глава 0: предыстория

Захотелось построить дом. Дом построили, встал вопрос с отоплением и управлением, а так как в доме иногда отсутствовали по несколько месяцев, то переплачивать за газ не очень-то и хотелось. Газа ведь магистрального нет, но «мы скоро проведем». До этого «скоро» закопали газгольдер, а газ там в +-10 раз дороже магистрального. Пытливый ум решил: будем поддерживать в доме температуру 15 градусов, когда там никого нет. Как это сделать? Повесить контроллер/термостат для котла.

Читать далее
Total votes 31: ↑30 and ↓1+40
Comments112

«Умная дача» реального человека, без рекламных интеграций

Reading time17 min
Views33K

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

Зайти в Изнакурнож:
Total votes 60: ↑60 and ↓0+60
Comments44

Information

Rating
Does not participate
Registered
Activity