habrahabr
Спидометр для электромопеда на микроконтроллере PIC16F628A

Привет, Хабр! Несколько лет назад у меня был самодельный 48-вольтовый электромопед на свинцово-кислотных аккумуляторах, переделанный из Риги-12. Для него был разработан специальный спидометр, смонтированный вместо крышки бензобака, переделанного в отсек для электроники. Во время движения прибор показывал скорость, а на остановке — пройденный путь. На примере этой несложной поделки я расскажу и покажу вам последовательность разработки и воплощения любительского микроконтроллерного устройства…

  • вторник, 13 мая 2025 г. в 00:00:15
habrahabr
Как одна строка кода могла окирпичить ваш iPhone

Это история о том, как я недавно обнаружил в iOS уязвимость, которая стала одной из моих любимых. Почему любимых? Потому что реализовать для неё эксплойт оказалось очень легко. Кроме того, она использовала публичный легаси API, на который до сих пор опираются многие компоненты ОС Apple, и о котором многие разработчики даже не слышали. ▍ Уведомления Darwin Большинство разработчиков под iOS наверняка привыкли к NSNotificationCenter, а разработчики под Mac — к NSDistributedNotificationCenter. Пе…

  • вторник, 13 мая 2025 г. в 00:00:14
habrahabr
Оцифровка показаний стрелочного манометра в Home Assistant

Давно мучал вопрос передачи показаний давления системы отопления со штатного манометра газового котла. Для этого несколько лет назад была приобретена камера ESP32-CAM и интегрирована в Home Assistant посредством ESPHome.Камеру я направил прямо на манометр, что позволило мне периодически вручную удаленно контролировать давление в системе отопления, и, при необходимости, открывать кран подачи воды в систему (также удалённо).Штатный светодиод ESP32-CAM помогает разглядеть манометр в закрытом шкафу…

  • вторник, 13 мая 2025 г. в 00:00:13
golang
Некоторые приёмы ООП в golang

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

  • вторник, 13 мая 2025 г. в 00:00:11
golang
ООП не мертво. Вы просто пользуетесь им как молотком по клавиатуре

После каждой новой статьи с заголовком «ООП — это обман» хочется напомнить: ООП — это не набор шаблонов из книжек, а инженерный подход. Если проект страдает от наследования и DI, возможно, проблема не в ООП. А в том, как вы его применяете.«Никто не знает, что такое ООП»Это правда. Все трактуют по-разному. Даже сам Алан Кэй, человек, который придумал термин, не слишком рад тому, во что это всё превратилось:> “OOP to me means only messaging, local retention and protection and hiding of state-p…

  • вторник, 13 мая 2025 г. в 00:00:10
golang
Автоматизированное E2E-тестирование App.Farm: от хаоса к системе

Когда мы только начинали работу над платформой, тестирование напоминало ручное управление парусником в шторм — много усилий, но результат непредсказуем. Разработчики вручную создавали тестовые среды, QA проверяли функционал через Postman, а о стабильности релизов можно было только мечтать. Каждый новый релиз был как лотерея: либо всё работает, либо начинается долгий процесс поиска причины багов в production.Сегодня я расскажу, как мы построили систему автоматизированного тестирования на Go и Al…

  • вторник, 13 мая 2025 г. в 00:00:09
golang
Обзор Greenmask — утилиты для логического дампа PgSQL с трансформацией данных на лету

Архитектура GreenmaskGreenmask — это кроссплатформенный инструмент, разработанный на Go специально для безопасной работы с данными PostgreSQL: он помогает делать логические бэкапы, восстанавливать таблицы и при необходимости — анонимизировать чувствительную информацию. Главное преимущество Greenmask — полная совместимость с pg_dump и pg_restore. То есть, если вы уже работаете с этими инструментами, интеграция Greenmask не потребует пересмотра всей инфраструктуры.Один из ключевых сценариев испо…

  • вторник, 13 мая 2025 г. в 00:00:08
javascript
Подмена E-EDID на Windows

Отказ от ответственности Все манипуляции с блоками E-EDID вы осуществляете только на свой страх и риск с полным пониманием того, какие манипуляции и с какой целью вы выполняете, так как блоки E-EDID могут содержать информацию о разности потенциалов уровней сигналов, подмена которой при использовании некорректно подобранного в качестве донора дампа E-EDID может привести к повреждению компонентов электрических цепей монитора. ПодоплёкаЧуть более пяти лет тому назад, перед самым новым 2020 годом, …

  • вторник, 13 мая 2025 г. в 00:00:07
javascript
Продвинутые методы использования TypeScript в реальных проектах

Ранее на Piccalilli Сэм Роуз поделился реальными примерами использования вспомогательных типов (utility types) TypeScript. Сегодня я хочу продолжить эту тему и поделиться несколькими продвинутыми возможностями TypeScript для работы с типами, которые, на мой взгляд, особенно полезны и применимы в реальных проектах. Цель этой статьи — дать общее представление о каждой из возможностей, а также привести пример ее использования, чтобы вы могли лучше ориентироваться в том, какие инструменты можно …

  • вторник, 13 мая 2025 г. в 00:00:06