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
javascript
Вайб-кодинг или осознанная разработка? Я выбираю второе

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

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