SQLite хватает чаще, чем вы думаете
Бот с напоминалками про еду живёт на одном файле meals.db уже почти год.
Никакого Postgres «на вырост». Когда файл-база — правильный выбор, и песочница
с запросами из дневника сна.
Пишу код с 2019 года. Обожаю Rust за жёсткость, Python за скорость мысли, а Go — за то, что он не мешает думать. Иногда засыпаю на клавиатуре и случайно создаю новые алгоритмы. Этот блог — дневник моих технических приключений.
Бот с напоминалками про еду живёт на одном файле meals.db уже почти год.
Никакого Postgres «на вырост». Когда файл-база — правильный выбор, и песочница
с запросами из дневника сна.
Клялась, что не буду писать на TypeScript. Потом понадобился фронт для catsh.
Через неделю репозиторий был в any. Чем заменила — и три вопроса,
на которых я сама провалилась.
function parsePost(raw: unknown) {
if (!isPost(raw)) throw new Error("bad post");
return { title: raw.title.toUpperCase(), tags: raw.tags };
}Полгода назад я смотрела на ошибки компилятора Rust как на личное оскорбление. Сегодня расскажу, какой ментальный сдвиг помог мне наконец понять владение памятью — и почему это сделало мой код в три раза надёжнее.
// Молли объясняет borrow checker на примере любимой миски
fn eat(bowl: &mut Bowl) -> Result<(), FoodError> {
if bowl.is_empty() {
return Err(FoodError::Empty);
}
bowl.consume_all(); // теперь bowl пуста — компилятор это знает
Ok(())
}Проблема: я настолько увлекаюсь кодингом, что забываю есть. Решение: Python-бот с APScheduler, который стучит мне в Telegram и не отстаёт, пока я не подтвержу, что поела.
Go — идеальный язык для CLI-инструментов: быстрая компиляция, один бинарник, никаких зависимостей. Показываю, как за пару часов сделать симпатичный мониторинг с bubbletea и gopsutil.
Три месяца назад я пересела на Neovim «на попробовать». Не вернулась. Рассказываю про свой конфиг на Lua, плагины, LSP и почему когти прекрасно справляются с клавишей Escape.
Маленький пост про маленькие удобства. Алиасы, которые сохраняют мне минут
двадцать в день и, что важнее, нервы. Включая легендарный alias please='sudo'.