Дебаж 🪲 с ноги 🦶
368 subscribers
262 photos
47 videos
2 files
172 links
🪲Дебажу код,🐞отлаживаю жизнь
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
😱1😭1
Я встроил браузер в браузер

Недавно писал, что вписался консультантом в проект Signal. Бекенд развернут на self-host Supabase. Мне дико не нравится работать с их логами, поэтому решил поднять VictoriaLogs + VictoriaMetrics и прикрутить Grafana как UI.

Вся эта связка живет на одной железке в докере. У такого конфига есть только одна огромная проблема это безопасность. Виктория из коробки вообще не идет ни с какой авторизацией. Обычно это не парит: засовываешь всё за VPN и забываешь. Но с 2025 года с VPN всё туго. Его надо постоянно поддерживать и оживлять, а времени на это нет.

Отсюда вопрос: как не светить Викторию голой в сеть, но при этом иметь доступ к админке, если вдруг что сломается?

Докер сам строит внутри себя сети, и контейнеры отлично общаются по адресам типа grafana:3000. Мой локальный браузер про эти внутренние адреса на VPS, конечно, ничего не знает. Но оказалось, что кто-то уже столкнулся с этой проблемой до меня и собрал докер-образ с Хромом (lscr.io/linuxserver/chromium).

Работает это так: на удаленной виртуалке поднимается браузер, к которому я подключаюсь из своего обычного браузера. Получается такой фрейм прямо в приватную сеть докера. Сидишь и вбиваешь в строку имена контейнеров. Естественно, сам веб-интерфейс этого Хрома надо закрыть паролем, иначе вся затея теряет смысл.

Штука прикольная. Можно даже срезать качество картинки и FPS, если инет тупит. Но есть боль с буфером обмена. Текст просто так не скопируешь, приходится пихать его в отдельное окошко. Плюс у меня Мак с cmd+c/v, а на сервере крутится линукс с ctrl и мозг при переключении немного ломается.

Как итог, костылем я доволен. Собрал себе админку без VPN, в которую буду залезать может раз в полгода, но зато без боли.

👍 - надо юзать vpn
❤️ - норм костыль

Дебаж 🐞с ноги 🦶
👍42
Экономика ИИ-продуктов. Покупаешь подписку за $200, а сжигаешь серверного времени на $14 000.

Забавно, но сейчас OpenAI и Anthropic фактически оплачивают мне разработку пет-прожектов из своего кармана. Ребята из SemiAnalysis провели крутой стресс-тест: купили максимальные тарифы ChatGPT Pro и Claude Max (по $200 в месяц) и гоняли на них хардкорные агентурные таски, пока не уперлись в недельные лимиты. Потом они пересчитали потраченные токены по официальным API-прайсам. Оказалось, что из Claude Max за 200 баксов можно выжать лимитов на $8 000. А из ChatGPT Pro (20x) — на безумные $14 000.

Для меня это вообще не абстрактные цифры. Я постоянно юзаю агентов (в связке с тем же Cursor) и скармливаю им гигантские простыни кода. При таком подходе маржинальность OpenAI улетает в жесткий минус: они работают в убыток уже после того, как юзер тратит 5,7% от лимита. По сути, люди, которые за $20 генерят по три письма в день, спонсируют технарей вроде меня, выжимающих из моделей все соки.

Какой продуктовый вывод я делаю для себя?

Для честной работы по API надо искать аналоги у китайских друзей — те же DeepSeek или Qwen стоят копейки, а с кодом справляются отлично.

А вот для тяжелых локальных тасков, парсинга и агентов, пока эту дыру не прикрыли, выгоднее веб-подписки OpenAI/Anthropic (через эмуляцию или прокси), чем платить им за API.

А вы как гоняете нейронки для рабочих задач?

👍 - Только API, мне важна интеграция в код
🔥 - Сижу на подписке и выжимаю из неё максимум
👀 - У меня вообще локальные модели крутятся / юзаю китайцев

Дебаж 🐞с ноги 🦶

#толки
🔥6👀1
Мой опыт с Supabase: 8 неочевидных костылей, о которых молчат в красивых туториалах.

Все вокруг хвалят Supabase за скорость. И да, я тоже повелся. Как бэкендера меня поначалу знатно корежило от того, что фронт ходит тупо прямиком в базу. Но ради быстрой доставки фичей я зажмурился.

Спойлер: пилится-то всё реально быстро. Только потом ты ловишь тихие баги, пропадающие логи и жесткий вендор-лок. Я собрал на Supabase уже несколько проектов и успел поседеть.

Короче, вот за что вы будете страдать на бесплатном тарифе (да и не только на нем).

Логи. Их просто нет
Точнее, они живут ровно 24 часа. Упало что-то в пятницу вечеро - в понедельник с утра ты дебажишь святым духом. Встроенный поиск это вообще кровь из глаз. Без какого-нибудь Datadog или Logflare там тупо не выжить.

Edge-функции и проклятые холодные старты
Это отдельный котел. Писать надо на Deno, так что половина привычных npm-пакетов идет лесом. Лимиты на вызовы жесткие, долгую таску не запустить. Но самое бесячее — холодные старты. Пока поднимется пул коннектов к базе, проходит до трех секунд. В моем сервисе post-cooler.ru edge-функция отдает HTML для линк-страничек. Я смотрю в метрики и плачу: кликов куча, а дожидаются загрузки единицы. Конверсия просто умирает на этапе бесконечного лоадера.

Палево с доменами в OAuth
Юзер логинится через Google, а в окне авторизации торчит <project-id>.supabase.co. Я когда делал photo math, целый час дебажил эту хрень. Думал, что сам где-то накосячил — на локалке-то всё выглядело нормально! Оказалось, не баг, а фича. Хочешь свой домен? Плати.

Хаос со схемами БД
Экспорт схем из дашборда выпилили еще в 2025 году. Сейчас помогаю проекту the-signal переехать на селф-хост. До этого код там писали vibe-кодеры, которые вообще не парились про миграции. Вытащить дамп схемы из облака было той еще болью. Без жесткой дисциплины база очень быстро превращается в неуправляемую помойку.

Тормоза локальной разработки
Я постоянно прыгаю между проектами. И каждый гребаный раз supabase start лезет тянуть свежие Docker-образы. Поднимает 10+ контейнеров, а ты сидишь и тупишь в терминал. Весь кайф от "быстрой" разработки улетучивается.

Тихие RLS-ошибки
RLS (Row Level Security) ошибается молча. Накосячил в политиках? БД тебе не скажет. UPDATE просто вернет 0 affected rows, а SELECT подтянет половину данных.

Транзакции и боль SQL-функций
Через REST API нельзя сделать нормальную транзакцию на несколько таблиц. Нужно атомарно создать юзера, профиль и настройки? Обломись. У меня пока ничего не отвалилось, но я с ужасом жду, когда в базе начнут копиться "осиротевшие" записи.
Чтобы это обойти, приходится писать логику на PL/pgSQL прямо в базе. Редактор там примитивный, автокомплита толком нет и дебажить то еще удовольствие.

Вендор-лок
Клиентский SDK намертво завязан на специфичный синтаксис PostgREST и их собственные токены. Если однажды решишь переехать на нормальный самописный бэк: придется рефакторить вообще весь клиентский код.

Короче. Для MVP или пет-проекта, чтобы просто проверить гипотезу на коленке - это топ. Да, часть этих костылей можно вылечить, если закинуть денег и перейти на платную версию. Но возникает резонный вопрос: за те же 25 баксов в месяц можно спокойно поднять Supabase на нормальной VPS-ке и вообще забыть про лимиты.

Кто еще сидит на Supabase или Firebase? С чем боретесь? И есть тут те, кто уже психанул и переехал на свой бэк?

👍 - Supabase и полет нормальный
🔥 - надо сразу делать хорошо и писать нормальный бек

Дебаж 🐞с ноги 🦶

#тек
🔥4👍3👎2
Сегодня традиционно пробежал Гонку Героев! В этот раз в компании создателя проекта «Масштаб», который в свое время и втянул меня во все эти side-проекты. Кстати, у ребят из «Масштаба» всё отлично, сейчас они активно работают с «Автодором». Сама гонка прошла максимально круто: было море грязи и драйва. Вот пара фоток!

#лайф

Дебаж 🐞с ноги 🦶
🔥51🥰1
React-приложение и SEO: как я решил проблему индексации практически бесплатно

Сейчас у меня в активной разработке проект The Signal — это платформа с редакторскими новостями для снижения тревожности (как минимум у меня). Ниша «новости» сложная и высококонкурентная, поэтому тут критически важно, чтобы сайт хорошо индексировался поисковиками.

Но The Signal - это React-SPA (Single Page Application). Проблема SPA в том, что поисковые роботы (особенно Яндекс) плохо переваривают динамический JS-контент. Им подавай готовый HTML, иначе в поиск страница может просто не попасть или попадет криво.

Поднимать полноценный SSR (Server-Side Rendering) было долго, поэтому я нашел хак: индексировать статику на субдомене. То есть основное приложение живет своей жизнью, а статьи публикуются на дополнительный сайт-витрину, который уже легко съедается Google и Yandex.

Как сделать это за копейки
Я использую Yandex Cloud S3 (за хранение HTML и трафик поисковиков там набегают сущие рубли), но подойдет любой провайдер. Инструкция:

Создаем бакет и называем его как наш новый субдомен: у меня это digest.the-signal.ru.

В настройках бакета включаем «Веб-сайт хостинг».

Идем туда, где заводили домен, и создаем CNAME-запись: направляем digest.the-signal.ru на digest.the-signal.ru.website.yandexcloud.net.

Возвращаемся в Yandex Cloud, идем в Certificate Manager и добавляем бесплатный сертификат Let's Encrypt.

Подтверждаем права на домен. Для этого нужно положить специальный файл-ключ от Let's Encrypt в скрытую папку .well-known/acme-challenge/ в нашем бакете. Так сервис по урлу проверит, что домен ваш. Подробнее о том, как вообще работает валидация и подключение SSL (на примере Nginx), я писал в своей статье на Хабре.

Переходим в настройки бакета -> Безопасность -> HTTPS и выбираем созданный сертификат.

Любыми мыслимыми и немыслимыми способами (руками, скриптами, CI/CD) закидываем сгенерированные HTML-странички в бакет.

Не забываем добавить sitemap.xml и robots.txt для поисковиков.

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

👍 - интересное решение, забираю
💩 - это костыль, который сломается

#тек

🫥 Дебаж 🐞с ноги 🦶
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍2🤔1
Мой главный вывод о любых маркетплейсах и сторах: если бизнес завязан на чужую площадку, это больше не твой бизнес.
Сегодня у миллионы установок и стабильный доход, а завтра приду удаляют по щелчку пальцев, и ничего не можешь с этим сделать. Платформа всегда диктует свои условия. Если нет независимых каналов связи с пользователями, проект просто находится в заложниках у корпораций.

#толки

🫥 Дебаж 🐞с ноги 🦶
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3💯2
Отцовская тревога

Смотрю на свежую статистику найма, и как отцу мне становится тревожно. Бизнес массово заменяет джунов нейросетями. Это выгодно прямо сейчас, но в перспективе этот тренд убьет рынок. Змея начала жрать свой хвост.

Цифры суровые: каждый третий бизнес признался, что вместо стажеров базовую рутину теперь делает ИИ. Это логично алгоритмы работают круглосуточно и не опаздывают по утрам.

В России тренд точно такой же. Вакансий для джунов стало на 40% меньше, чем два года назад. На одну стартовую позицию сейчас 19 резюме (против 2,5 на место сеньора). А до живого эйчара доходит в лучшем случае каждый десятый (остальных безжалостно отсеивает ИИ-фильтр еще до человека).

Я испытываю из-за этого сильную тревогу по двум причинам:

1)Вкатиться с нуля будет почти нереально. Устроиться начинающему специалисту становится настолько сложно, что нужно либо с пеленок готовить связи (а я этого не умею), либо делать IT семейным бизнесом, чтобы брать детей к себе на стажировку.

2)Глобальный баг в системе. Бизнес отказывается от новичков, потому что ИИ дешевле, и компании не хотят брать на себя социальную нагрузку по менторству. Но опытные спецы не вечны!

Чтобы вырастить сеньора, который спроектирует сложную архитектуру и возьмет на себя ответственность за продукт, ему нужно своими руками написать сотни базовых фич и набить шишки. А этой «песочницы» больше нет - её забрал ИИ. При этом нейросети пока не тянут задачи серьезных сеньоров. Получается ловушка: старые кадры уйдут, а новые просто не появятся, потому что им негде расти.

Лучший карьерный совет - это родиться на десять лет раньше. И как всегда с детьми: проще уже было.

Что думаете делать с этим багом в матрице? Учить детей кодить, надеясь, что они пробьются через ИИ-мясорубку, или отправлять их учиться работать руками, куда алгоритмы не дотянутся?

👍 - учится работать руками, куда алгоритмы не дотянутся
🔥 - делаю IT семейным бизнесом
🤔 - ИИ скоро сам станет сеньором, расходимся

💩 - ИИ дороже чем джун, не переживаем

🫥Дебаж 🐞с ноги 🦶

#толки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🤔3🔥2
Заработал худи за новость, которую даже не искал, или как я перестал думскроллить ТГ

Вчера закинул в рабочий чат dev security инфу про свежую уязвимость в Argo. Коллеги так оценили оперативность, что пообещали подогнать корпоративный худак. Самое смешное, что я эту новость не выискивал (я вообще почти перестал читать Telegram-каналы).

Всё потому, что мы с командой The Signal (я их сейчас консультирую) наконец-то выкатили проект в продакшен.

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

Проект уже живет своей жизнью: мы запустили на лендос первый трафик с Яндекс.Директа (кстати, про то, как мы строим воронку и как конвертит экран регистрации, расскажу в следующих постах ).

Из свежего внутри самого приложения: мы добавили пару крутых дайджестов:

🤖 Кибербез (InfoSec) Daily

JVM Backend

Приглашаю вас затестить: ставьте PWA, подписывайтесь на даджесты и перестаньте сливать часы на думскроллинг app.the-signal.ru.

И главное: у меня к вам вопрос. Какие еще около-айтишные дайджесты нам добавить? Пишите в комменты свой стек, интересы или любимые каналы.

Дебаж 🐞с ноги 🦶

#bip #signal
👍5🔥1
Пока все вокруг считают токены и скупают GPU, Microsoft решила проблему тяжелых нейросетей технологией из СССР. Серьезно.

Записал короткое видео о том, как математика победила бюрократию, и почему двоичный код больше не тянет ИИ.

🎥 Смотреть тут: [Ссылка на YouTube]
🔥3
Дебаж 🪲 с ноги 🦶
🎉 Внимание: розыгрыш проекта! В канале я часто делюсь тем, что делаю ставку на стратегию портфеля продуктов и вкладываю время в разные идеи. В какой-то момент я пришел к важному выводу: нужно делать то, чем пользуешься сам. В моем портфеле лежит проект,…
Итоги розыгрыша Photo Math!

Всего в боте зарегистрировалось 9 человек. Спасибо всем за участие, вы крутые, а конкуренция за готовый бизнес получилась очень тёплой и ламповой.

Новый владелец Chrome-расширения со всеми потрохами - счастливчик с ID 8616589880.

Скоро приду в личные сообщения, всё передам, покажу и расскажу.

Едем дальше 🪲🦶
🍾6
Написал, как настроил наблюдаемость для своего self-hosted Supabase.

Собрал метрики хоста, PostgreSQL и health-check’ов в VictoriaMetrics, а логи контейнеров и Edge Functions в VictoriaLogs. Всё это смотрю через Grafana.

Сначала логи отправлял по HTTP через Edge Function-адаптер. Потом убрал лишний хоп и перенёс pipeline в штатный Vector: он читает docker-логи, нормализует их через VRL и отправляет батчами на отдельный сервер мониторинга.

Внутри статьи оставил реальные примеры docker-compose, scrape.yml, vector.yml, Nginx-конфиг с IP allowlist.

Ссылка: тык

#тек

Дебаж 🐞с ноги 🦶
👍3