Сообщения

Главный риск разрозненных админок — вовсе не утечка паролей

Главный риск разрозненных админок — вовсе не утечка паролей Обычно консультанты по безопасности пугают владельцев бизнеса классической страшилкой: у вас уволится менеджер, унесет пароль на стикере и продаст базу конкурентам. Или еще банальнее — сотрудники тратят по 15 минут в день просто на то, чтобы вспомнить, в какой из шести панелей какой логин подходит. Это раздражает, но бизнес от этого не рушится. Настоящий катастрофический риск разрозненных внутренних сервисов гораздо тише. Это фантомные доступы и полная невозможность понять, кто именно совершил критическое действие, когда всё полетит к чертям. История про 11 400 клиентов и логин admin_2 В ноябре 2021 года я разбирал инцидент в логистической компании средней руки. Ребята росли быстро. За четыре года разработки у них сформировался типичный зоопарк: основная CRM, изолированная панель управления складом на Django, самописный скрипт для сверки платежей и Metabase для аналитики. У каждого сервиса — своя база пользователей и с...

Почему ваши API-интеграции падают в три часа ночи (и сколько это стоит на самом деле)

Почему ваши API-интеграции падают в три часа ночи (и сколько это стоит на самом деле) Ноябрь 2022 года. Три часа ночи. Звонок от нервного владельца интернет-магазина. Суть проблемы простая и больно знакомая: на сайте прошла распродажа, заказы падают каждые три секунды, клиенты платят, а в базе пусто. Менеджеры утром открывают CRM — там ноль новых лидов. Выяснилось, что скрипт, который фрилансер сдал за 15 тысяч рублей полгода назад, тихо захлебнулся. Он упал на 404-й ошибке, когда сервис объявлений без предупреждения обновил формат ответа API. Итог — 412 «потерянных» заказов, три дня ручной сборки данных из логов эквайринга и упущенная выручка почти на 500 000 рублей. Я занимаюсь связкой бизнес-систем уже больше семи лет. За это время я видел сотни упавших коннекторов, развалившихся баз и дублей в CRM. Если вы думаете, что связать два сервиса — это просто скопировать токен и вставить его в настройки плагина, у меня для вас плохие новости. Что такое API-интеграция простыми словами...

Why 80% of Freelance Scraping Projects Self-Destruct (And How We Fixed Ours)

Why 80% of Freelance Scraping Projects Self-Destruct (And How We Fixed Ours) Back in November 2021, I took a job scraping a regional footwear site. 14,200 SKUs, daily price updates, clean pagination. I spent two days writing a pristine Playwright runner, zipped up the repository, collected $2,200, and moved on. I thought I was a genius. Four days later, my phone blew up. The target site updated their Cloudflare stance and tweaked two CSS class names in their product grid. The script didn't throw an error—it silently returned empty arrays for 14,200 rows. My client had delivered three thousand blank entries to their pricing team before anyone noticed. I spent my weekend fixing code for free, burning through residential proxies, and losing money by the hour. That was the week I stopped selling scripts. It was also the week I realized why most web scraping freelance work turns into a disaster for both the buyer and the builder. The Fatal Flaw: Selling Code Instead of Data Flo...

Why We Stopped Using Web Forms for B2B Lead Capture (And What We Built Instead)

Why We Stopped Using Web Forms for B2B Lead Capture (And What We Built Instead) Back in mid-2023, I spent three painful weeks watching a client burn $4,500 a month on Google Search ads. They ran a specialized B2B logistics consultancy. The search terms were high-intent, the traffic was qualified, but the landing page was an absolute graveyard. We had a slick web form with six simple fields: name, work email, fleet size, average monthly spend, phone number, and a text box for notes. It was converting at 1.8%. Less than two leads for every hundred clicks. We tweaked the headline. We moved the call-to-action button above the fold. We added client logos and verified reviews. Nothing moved the needle. Conversion stayed buried below 2%. The issue wasn't the offer. The issue was asking a stressed operations director to pause what they were doing, type six fields into a desktop browser window, and wait two days for a sales representative to email them back. By the time our client res...

Почему я зарёкся писать скрейперы для auto.ria (и сколько мы на этом потеряли)

Почему я зарёкся писать скрейперы для auto.ria (и сколько мы на этом потеряли) В ноябре 2022 года ко мне пришел клиент. Обычный автотрейдер, который решал понятную задачу: хотел первым выхватывать выгодные предложения на украинском вторичном рынке. Его запрос звучал предельно просто: «Сделай мне бота, который парсит auto.ria каждые 30 секунд. Видит машину ниже рынка — кидает уведомление в Telegram. Напиши скрейпер, там работы на два вечера». Я согласился. За пару дней собрал скрипт на Python с Playwright, нашел дешевый сервис с прокси и развернул всё это на сервере за $5 в месяц. В первые три дня система летала. Клиент радовался, забрал пару свежих машин, а я получил свои деньги и переключился на другие задачи. А в пятницу вечером парсер тихо умер. Анатомия тихой катастрофы Скрейперы никогда не ломаются с громким салютом. Они не присылают тревожные письма в саппорт. Они просто тихо перестают отдавать новые данные или начинают возвращать пустой массив. В тот вечер разработчики...

Почему 5000 товаров на Prom.ua убьют ваш бизнес без нормального автообновления (и как мы на этом обожглись)

Почему 5000 товаров на Prom.ua убьют ваш бизнес без нормального автообновления (и как мы на этом обожглись) Ноябрь 2021 года. К нам заходит клиент с каталогом на 8 400 позиций. Автотовары, инструмент, садовая техника. Три разных поставщика, у каждого свой формат прайсов. Контент-менеджер уверяла, что успеет вручную пересчитывать цены и остатки через Excel каждый день. Я тогда пожалел деньги клиента на разработку нормального скрипта и вынес вердикт: «Ну давай попробуем через стандартный импорт Prom раз в сутки». Черная пятница. Поставщик поднял курс доллара в 8:00 утра и урезал остатки по ходовым позициям. Стандартный YML-файл Prom завис в очереди на импорт — платформа тогда просто легла под нагрузкой. К 14:00 мы продали 42 автотурбины и насоса по старой цене, которых даже не было в наличии у дистрибьютора. Итог — около $1 800 чистого убытка из своего кармана на отпевание репутации и выплату компенсаций разгневанным покупателям. Плюс рейтинг магазина улетел на дно из-за отмен. Тог...

Как я перестал сжигать тысячи долларов на LLM-агентах и заставил их писать рабочий код

Как я перестал сжигать тысячи долларов на LLM-агентах и заставил их писать рабочий код В ноябре прошлого года я за три дня сжёг $3,400 на API OpenAI. Мой «автономный разработчик», которому я доверил рефакторинг сервиса, попал в бесконечный цикл. Он застрял на синтаксической ошибке в TypeScript, каждый раз отправлял весь контекст проекта из 120 тысяч токенов обратно в модель, получал тот же галлюцинирующий ответ и снова запускал сборку. Когда я проснулся и увидел уведомление от банка, мне хотелось удалить все скрипты и вернуться к обычному ручному кодингу. Все громкие обещания про «AI-агентов, которые заменят сеньоров», разбиваются о реальность, как только проект выходит за рамки скрипта на 50 строк. LLM теряет контекст. Модель забывает, что писала пять минут назад. А обычный Function Calling превращается в спагетти из костылей. Ситуация изменилась только тогда, когда мы полностью выкинули самописные обертки и перестроили архитектуру работы с контекстом. Разбор путаницы: что скр...