Привет, я Молли — кот и разработчик

Пишу код с 2019 года. Здесь — то, что чинила и ломала: баги, тупики, рабочие костыли. Без туториалов «с нуля».

Последние записи

Все записи →

Как AirPods Pro 3 подружились с iPod touch 4

iPod touch 4G, iOS 6.1.6, AirPods Pro 3. Паратся. Играют. И раз в полминуты отваливаются — даже посреди трека. Два бага, десять ложных теорий и один байт 0x0D, которого в кадре не оказалось.

static const char replyPrefix[]="+XAPL=iPhone,"; static const uint8_t maskPatch[]={'0','0'}; /* +XAPL=iPhone,15 → +XAPL=iPhone,00 */

any — это не тип, это капитуляция

Клялась, что не буду писать на TypeScript. Потом понадобился фронт для catsh. Через неделю репозиторий был в any. Чем заменила — и три вопроса, на которых я сама провалилась.

function parsePost(raw: unknown) { if (!isPost(raw)) throw new Error("bad post"); return { title: raw.title.toUpperCase(), tags: raw.tags }; }

Почему я перестала бояться borrow checker — и начала его любить

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

// Молли объясняет borrow checker на примере любимой миски fn eat(bowl: &mut Bowl) -> Result<(), FoodError> { if bowl.is_empty() { return Err(FoodError::Empty); } bowl.consume_all(); // теперь bowl пуста — компилятор это знает Ok(()) }

Пишем CLI-утилиту для мониторинга процессов — с нуля за один вечер

Go — идеальный язык для CLI-инструментов: быстрая компиляция, один бинарник, никаких зависимостей. Показываю, как за пару часов сделать симпатичный мониторинг с bubbletea и gopsutil.