Фёдор Борщёв

Заметки с тегом «Инструменты»

Вам не нужно на фронтир

В маленьком вебе (надеюсь, вы его читаете) можно найти целый диапазон мнений про AI-хайп — от отрицания до полного поклонения (автор последнего — целый автор Redis). В Х (его вы, надеюсь, не читаете) топ-менеджеры AI-компаний жалуются, как ловят FOMO от скорости появления новых технологий, которые их же компании производят. В общем хайп-поезд всё ещё едет.

Боязнь остаться за бортом характерна для нашей отрасли. И оправдана — если условный сисадмин с нормальным для рынка уровнем знаний в 2016-2018 годах пропустил появление k8s и облачных технологий, зарплата у него не вырастет, пока он не докачает знания до новой планки. Думаю, каждый вспомнит такие революции в своём стеке: фронтендеры вспомнят появление реактивных компонентов, vue, svelte. Бекендеры вспомнят graphql и микросервисы. Деды вспомнят AJAX и MVC. Все вместе вспомнят блокчейн.

Остаться за бортом революции — страшно. Есть три способа справится с этим страхом. Кто-то бросает все силы, чтобы внедрить новое, сабмитит разработчикам баги, мирится с детскими болезнями. Это ранние пташки. Кто-то отрицает всё новое («выросло поколение, которое не может писать без веб-фреймворков») — как луддиты. А кто-то закрывает свои рабочие задачи тем, что есть, изучая новые технологии только тогда, когда от этого уже никуда не деться — как обычные потребители.

Стратегия обычных потребителей — самая выгодная: пока они доходят до новой технологии, она успевает достаточно созреть — обзавестись документацией, встроиться в экосистему, вылечить детские болячки. На этом этапе цена изучения технологии гораздо ниже — сравните, к примеру, первую версию документации react, которая предлагала комплилировать JSX прямо в браузере и современный next.js, на котором собрать сайт можно за 10 минут без помощников.

AI, хоть и отличается скоростью от предыдущих революций, проходит тот же самый путь: какие-то части уже созрели (Cursor, агенты), какие-то — пока на ранней стадии (агенты, которые пишут агентов). А какие-то части уже умерли, или потихоньку стагнируют. Если следить за всеми этими новостями — на работу не останется времени.

Как поступать с AI, придерживая стратегии обычного потребителя? За пару дней подобрать себе удобный зрелый инструмент (cursor/claude cli/opencode/figma), и, применив закон Парето к своему FOMO, просто решать свои рабочие задачи. А если ещё какие-то части AI-инструментария дозреют до того, чтобы заслужить вашего внимания — вы наверняка об этом узнаете, как сисадмины узнали о k8s.

Day One → Obsidian

Несколько месяцев назад я решил отказаться от Day One, которым пользовался 5 лет для ведения личного дневника. Причин было несколько:

  • Невозможные тормоза. Дело тут даже не в электроне, или на чём он там написан: кажется Day One — это просто плохой софт. Удивляюсь, откуда у разработчиков берётся энергия, чтобы писать столько кода, чтобы тормозило даже на новом макбуке, где давно уже даже ноушен летает.
  • Фокус на метаданных. Day One с самого начала обвешивает привычку писать дневник всякими ненужными вещами, которые не представляют интереса уже через день — предлагает логать погоду, место и даже музыку, которую я слушаю. Чтобы ненужных данных было ещё больше, Day One ломает паттерн, привычный людям уже несколько сотен лет — вместо обычных ежедневных заметок, вас заставляют писать по одному посту на каждое событие. Добавил фотку — пост, записал мысль — ещё пост.
  • Переусложнённый формат хранения. Возможно следствие предыдущего пункта, но внутри у Day One довольно сложный формат хранения данных. Вроде бы и маркдаун, но он зарыт внутри довольно сложного JSON, который непонятно как парсить. То есть я как бы владею собственными данными, но вот считать их без Day One я скорее всего не смогу. А если и смогу сегодня — никто не гарантирует, что я смогу повторить это через 10 лет, когда формат переживёт ещё 3 инкарнации, а контента в дневнике станет в 4 раза больше.

Для замены Day One я выбрал Obsidian — он показался мне самым надёжным из всех инструментов для ведения заметок. Самое главное преимущество Obsidian перед специализированным софтом — все данные хранятся в виде MD-файлов на диске. То есть я владею своими данными, бекаплю их как хочу, и они никогда и никуда от меня не денутся.

От встроенной синхронизации решил отказаться, потому что iCloud работает быстрее, а на экосистеме Apple я сижу давно и плотно. Так же пришлось почистить слегка перегруженный интерфейс — помогло, что Obsidian проектировали как инструмент для программистов. Довольно легко мне удалось убрать всё лишнее — отключить штатные плагины вроде Canvas или записи аудио, попрятать ненужные детали интерфейса при помощи Hider.

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

Самое главное — теперь я уверен, что полностью владею своими данными — пачку маркдаун-файлов можно будет открыть хоть на квантовом компьютере.

Зачем и как начинать проекты на Django

Этот доклад я рассказывал в 2021 году, но в 2023 всё ещё ничего не изменилось: Django — по-прежнему лучший инструмент для веб-бекенда в Python, если не пытаться тащить в неё батарейки и генерить на ней HTML.

Как защититься от спама в комментариях к телеграм-каналу

Update: мой бот постепенно закрывается. Рекомендую заменить его на @DeFensy_bot.

Комменты в телеге — отличный инструмент для дискуссий: не надо вводить почту и заполнять капчу; написать коммент так же легко как написать другу в другу; при желании легко перейти в личку. К сожалению, этой простотой пользуются спамеры — регистрируют аккаунты на левые симки и шлют GPT-сообщения о распродажах на вайлдберис, шокирующем выступлении Путина и даже о Ванге:

Telegram пока не борется с таким спамом — они нормально защищают чаты, но полностью игнорируют комменты каналов. И пока Дуров не завёз нам нормальный антиспам, я сделал это сам — запилил бота, который удаляет комменты спамеров.

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

Я очень не хочу вступать в эту гонку, поэтому предлагаю просто удалять из комментариев все виды ссылок — на сайты, чаты, каналы и даже на людей. Сообщение спамера без ссылки не имеет никакого смысла — по нему гарантированно никто не перейдёт. Конечно, живые люди тоже хотят обмениваться ссылками — им, к сожалению, придётся обойтись без этого, либо написать хотя бы несколько нормальных сообщений в чат, чтобы бот увидел, что они живые люди.

Я достаточно давно использую этого бота у себя в канале, и сейчас открыл его для всех. Чтобы запустить бота у себя, нужно просто добавить @discussion_sentinel_bot как админа в дискуссионную группу канала, разрешив ему удалять сообщения. Бот не поможет, если у вас не канал с комментариями, а чат. Вместо этого возьмите лучше daysandbox или shieldy.

Важно не просто добавить бота, а разрешить удалять сообщения — иначе он не будет работать

Бот — бесплатный: не нужно подписываться ни на какие каналы, оплачивать подписку или читать чей-то спам. К сожалению, я не смогу даже написать вам, если изменю алгоритмы бота, но если вам зачем-то хочется следить за новостями — смотрите гитхаб.

Старее