Blog

  • QR-коды

    QR-коды

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

    Поэтому в 1994 году японец Масахиро Хара разработал новый тип кода быстрого считывания — Quick Response code. Масахиро работал на заводе по производству автозапчастей Denso Wave, одного из поставщиков Toyota. Сотрудникам завода приходилось постоянно сканировать штрих-коды. Благодаря разметке из трёх чёрных квадратов, QR-коды можно считывать под любым углом или даже вверх ногами. Изобретатель отказался патентовать свою разработку, что позволило QR-кодам распространиться повсеместно.

    Идея QR-кодов пришла в голову Масахиро, когда он смотрел на доску для игры в Го. Черные и белые фишки напомнили ему бинарный код, где чёрные кодируют единицы, а белые — нули.

    QR-код может кодировать разные типы данных:
    – Числа как в традиционных штрих-кодах.
    – Буквы, числа и знаки пунктуации. Этот формат используют в том числе для адресов сайтов и vCard.
    – Бинарные данные — единицы и нули. Эти коды применяют в качестве меток для роботов.
    – Кандзи — базовые китайские иероглифы, которые включены в японскую письменную систему. Это что-то вроде древних эмодзи.

    В код встроен механизм коррекции ошибок за счёт избыточности данных — это позволяет правильно считывать повреждённые наклейки. Этим свойством научились пользоваться дизайнеры — наверняка вы видели QR-коды с встроенными логотипами.

    В школе я играл в игру рендзю на доске для Го. Вероятно, поэтому QR-коды меня сразу зацепили. Впервые я использовал их в рекламных кампаниях примерно 15 лет назад — мы размещали их на флаерах и афишах, которые висели по городу. Тогда их практически не сканировали, поэтому я в них разочаровался. Кто знал, что позже они станут такими популярными.

    Большой толчок в распространении QR получили во время COVID-19 — ситуация требовала бесконтактную передачу информации. Очень скоро их адаптировали для платежей.

    Если захотите сгенерировать QR-код, воспользуйтесь проверенными сервисами:
    Генератор от Adobe.
    GoQR. Тут есть также API для программной генерации.

  • Недавний опрос в сообществе руководителей

    Недавний опрос в сообществе руководителей

    Недавний опрос в сообществе руководителей диджитал-агентств Галера показал, что 2/3 рынка уже ощущают на себе кризис. Я много общаюсь на агентском рынке — знаете, кто кризис не ощущает? Те, кто занимается личным брендом и ведёт свои ресурсы в соцсетях.

    Так что, я не зря решил вести этот канал. Я вижу, как сильно выросли нетворкинг и узнаваемость. Меня дважды позвали выступить на топовые конференции. Решил отказаться — сейчас фокус на своих проектах, но сам факт очень греет! Партнёры, знакомые и друзья говорят, что читают мой канал и он им нравится. А самое главное — я получаю удовольствие от ведения канала.

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

    Когда я начинал вести канал, многое было непонятно, поэтому я стал искать у кого проконсультироваться. Несколько человек указали на Марину из Таргетерии и её феноменальные успехи в прокачке канала. Марина сразу сказала мне, что для нового канала можно не брать разовые консультации, а гораздо выгоднее записаться на свежий поток курса “Влетаем в Телеграм”, что и я сделал. На курсе я получил ответы на все вопросы, круто прокачался и нашёл тёплую компанию таких же начинающих авторов.

    Если вы тоже хотите развивать свой канал, то проще всего сделать это 20–21 августа на бесплатном интенсиве от Таргетерии. Марина поделится практикой — как писать классные посты, как привлекать подписчиков (в том числе бесплатно), как посчитать финмодель канала и какие есть способы монетизации.
    Я проверил на себе — это хорошее мероприятие.
    Регистрируйтесь на интенсив в боте

    Ещё на интенсиве будут классные бонусы и плюшки:
    – Подкаст “Как привлекать подписчиков в 2 раза дешевле рынка”.
    – Разбор от юриста, что изменится после 1 сентября.
    – 5 промптов, которые ускорят создание продающего контента, если вам надо продавать в канале.

    PS: Если будете брать полный курс, то сошлитесь на меня и получите специальную скидку.

    Реклама. ИП Колмыкова Марина Александровна, ИНН 500912315650, erid: 2W5zFJho4Kr

  • Запустить еmail-рассылку

    Запустить еmail-рассылку

    Придумал новый эксперимент! Хочу добавить в блог техдиректора email-рассылку с дайджестом новых постов.

    В сознании нормального человека желание завести email-рассылку может показаться диким — кто-то ещё читает письма в 2025 году?

    Но я опытный динозавр, меня трендами не так просто отвлечь.

    Факты про email:
    – Пользователи интернета отправляют 251 миллион email в минуту.
    – Социальные сети приходят и уходят, а почтовый ящик у людей не меняется со школы.
    – Email-база принадлежит мне и легко мигрирует с сервиса на сервис. В отличие от подписчиков в социальных сетях.
    – Недавно я отправил email-рассылку на 2000 человек и это действие принесло 68 продаж. Конверсия 3,4%!
    – Организаторы музыкальных событий делают рассылку по базе своих покупателей и получают волну продаж.
    – Знаю бизнес-консультантов, которые получают клиентов в основном с email-рассылки.
    – Пару лет назад разговаривал с редактором англоязычной email-рассылки по крипте на десятки тысяч человек. Рассылка платила зарплату нескольким работникам редакции.
    – Клиенты моей веб-студии регулярно рассылают свои новости и тратят на рассылку ощутимые суммы.
    – Аналитика этого года от нескольких западных сервисов говорит о том, что больше 35% подписчиков открывают письма, а вложения в рассылку у большинства бизнесов окупаются многократно.

    План по email-рассылке:
    – Выберу сервис для рассылок.
    – Настрою почту для домена.
    – Добавлю форму для подписки на сайт.
    – Пропишу предупреждения об обработке персональных данных.
    – Создам шаблон для рассылки.
    – Автоматизирую её отправку.

    А вы заглядываете в свой почтовый ящик?

  • Как блокируют звонки в Telegram и Whatsapp

    Как блокируют звонки в Telegram и Whatsapp

    Меня спрашивают, как же так получается, что все звонки в этих мессенджерах заблокировали, а сообщения отправляются? Рассказываю как можно проще.

    Интернет-провайдер — это сеть из проводов и роутеров. Wi-Fi-роутеры поменьше стоят у нас дома. От них провод тянется через стены и улицу в центр обработки данных интернет-провайдера. Там у них стоит большой роутер, который соединён с магистральным интернетом.

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

    Через ТСПУ, как через фильтр, проходит весь трафик — каждый открытый сайт, любая скачанная картинка, совершённый звонок или просмотренный видеоролик.

    Трафик состоит из пакетов, которые отправляются от одного пользователя сети другому. Я отправил сообщение в Telegram — от моего роутера на сервер Telegram отправился пакет с сообщением. YouTube стримит видео — с их сервера к пользователю идёт поток пакетов с кусочками видео.

    Все эти пакеты проходят через ТСПУ. Он смотрит, кто, кому и что именно отсылает с помощью технологии DPI (Deep Packet Inspection). Очень похоже на работника почты, который суёт нос в каждое письмо и посылку.

    Звонки в Telegram совершаются через UDP на порты 1400, 596, 597, 598 и 599. РКН указал ТСПУ не пропускать пакеты со звонками на серверы Телеграма. Пакет пришёл в чёрный ящик, а наружу не вышел. Подобным образом происходит и с WhatsApp.

    Пакеты с сообщениями отличаются от пакетов с звонками, поэтому их можно не блокировать.

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

  • Первая консультация

    Первая консультация

    Вроде бы это был 2004 год. Меня нашли по цепочке знакомых. Мужской голос в трубке спросил, хорошо ли я разбираюсь в Flash. Я сказал, что хорошо, и меня попросили подъехать, чтобы посмотреть на код.

    Лето, центр Питера, дворик в переулке Джамбула. Я поднялся по узкой витой лестнице, дверь открыл бородатый мужик лет сорока в свитере. Не разуваясь мы прошли в комнату. Там за столом, заваленным мусором и проводами, сидел второй бородатый мужик в очках и задумчиво смотрел в большой пузатый монитор. Сейчас я понимаю, что эта дикая смесь компьютерных проводов и экранов из “Матрицы” с хмурыми бородачами из “Брата” была маленькой веб-студией в съёмной квартире. Кипела работа — мужики делали новый сайт по продаже компьютеров для местной компании.

    Мы сухо поздоровались, и мне стали демонстрировать проблему. Меню сайта хотели сделать на модной тогда технологии Flash — с динамичными анимациями и спецэффектами. Меню сделали красивое, а как передавать в него адрес страницы и текущее состояние сообразить не могли.

    Я помог подружить JavaScript с Flash-роликом — показал, как передавать значения переменных из HTML и обрабатывать их с помощью ActionScript внутри Flash. На объяснение концепции и демонстрацию кода я потратил минут двадцать. Мужики одобрительно хмыкали и почесывали бороды. В конце они переглянулись, один молча достал зелёную бумажку в 50 долларов и протянул мне.

    50 долларов на тот момент для меня были ощутимой суммой. Помню, очень радовался, что получил деньги не за работу, а за знания. Странно, но этот случай остался единственным — я тогда не сделал выводы. Только спустя 15 лет я снова начал консультировать и получать от этого удовольствие.

  • Как следить за качеством услуг

    Как следить за качеством услуг

    За прошедшую неделю несколько раз обсуждал контроль качества оказания услуг.
    Я за собой вижу склонность избыточно доверять людям — все же понимают, как на самом деле надо? В общем, микроменеджмент не моя сильная черта. У других руководителей есть синдром отличника — всё должно быть сделано идеально. Если клиенту что-то не нравится, то руководитель автоматически проецируют это на себя — моя компания косячит, значит это я такой нехороший. С таким набором симптомов из операционки надолго не выйти.

    Личную хорошесть/нехорошесть я бы прорабатывал с терапевтом. А вот качество услуг можно проконтролировать. Для этого есть простой и хорошо известный метод сбора обратной связи — Net Promoter Score (NPS).

    Наверное, у каждого из нас этот NPS спрашивали. Выглядит это так:
    – Вопрос: “Насколько вероятно, что вы порекомендуете наш сервис?”
    – Простая шкала от 0 до 10, одну из цифр нужно выбрать.

    Если потребитель отметил 9 или 10, то он доволен и будет рекомендовать.
    Если 7 или 8 — ему нормально.
    Если оценка меньше 7 — у нас недовольный клиент.

    В книжках рекомендуют спрашивать “почему вы поставили такую оценку?”, но я предпочитаю другие вопросы:
    – Что мы могли бы улучшить?
    Спрашиваем у клиента, где у нас проблемная область, но в позитивном ключе. Этим мы переключаем его из роли критика в соавторы.
    – Что вам понравилось?
    Если ему хоть что-то понравилось, то он зафиксирует для себя этот момент в конце анкеты. Снова позитивное перепрограммирование.

    Ежемесячную отправку клиентам NPS-анкеты можно прикрутить к CRM. В офлайн-сервисах можно раздавать бумажные анкеты.

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

    Вроде понятно, что это полезно, инструменту много лет, внедрение копеечное. Помню, как я печатал такие анкеты 15 лет назад на копире и ставил картонную коробку для сбора ответов. Но даже у меня сегодня NPS внедрён не на всех проектах. Буду исправляться!

  • Про важность позиционирования

    Про важность позиционирования

    Со стороны кажется, что все директологи одинаковые. Но это точно не так — на консультациях я постоянно говорю про важность позиционирования для агентства.

    Мой близкий товарищ и давний партнёр Всеволод прислал новый кейс по рекламе своего агентства ApexAds. Лендинг для кейса сделан по RDB-фреймворку с поправками на формат. Смотрю, радуюсь за друга и показываю вам хороший пример нишевания.

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

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

    До наработки экспертизы любое агентство в новой нише ведёт себя как слепой котёнок: тыкается в углы, проливает бюджет и мяукает в ответ на вопросы. Я таким агентством был. Хорошо помню первые годы, как мы каждый раз удивлялись, когда у клиента срабатывала реклама и шли лиды.

    В общем, смотрю на цифры из кейса и хочется начать торговать мебелью оптом. Надеюсь, до завтра пройдёт.

    Если вы уже торгуете оптом или нужна реклама B2B-услуг, напишите Алёне.

  • WebP для картинок на сайте

    WebP для картинок на сайте

    В тесте для сайтов Page Speed Insights от Google есть рекомендация перевести все изображения в формат WebP. Формат разработали в Google, он открытый и основан на уже известном кодеке и форматах. Пользователи раньше не любили WebP, потому что не понимали как смотреть сохранённые картинки в устаревших программах.

    В чём же фишка и почему Google рекомендуют переходить на него?
    – JPG, GIF и PNG используют алгоритмы компрессии изображений, разработанные в прошлом веке.
    – WebP основан на эффективном видеокодеке VP8, который разработали для сжатия потоков видео.
    – Кодек пытается предсказать, какого цвета будут следующие пиксели и кодирует только отклонения от предсказания. Он просто старается не записывать информацию обо всех пикселях.
    – Лучше учитывает несовершенство человеческого зрения и делает картинку проще для кодирования с разницей незаметной для зрителя.
    – Поддерживает полупрозрачность, как PNG.
    – Компактнее хранит метаданные и меньше места тратит на технические заголовки файлов.

    Визуально неотличимые файлы получаются на 20-35% меньше, чем традиционные JPG и PNG. На многих сайтах картинки составляют большую часть веса, поэтому эта экономия значительно ускоряет загрузку.

    Чтобы WebP заработал на моём WordPress сайте, нужно проверить несколько вещей:
    – WebP поддерживается веб-сервером — для Caddy ничего делать не нужно, в NGINX или Apache2 я бы проверил поддержку mime-type.
    – WebP поддерживается сайтом — WordPress умеет распознавать WebP-файлы при загрузке.
    – Конвертировать уже загруженные картинки в WebP — я использую плагин EWWW Image Optimizer. Он бесплатно конвертирует все старые JPG прямо на сервере за пару минут.
    – Подменить старые форматы на новый в опубликованных постах. Для этого включаю автозамену картинок в том же плагине.

    Всё, на сайте работает WebP!

  • Local-First веб-приложения

    Local-First веб-приложения

    Пропал интернет и приложение перестало работать, потому что все данные оно получало с удалённого сервера. Сообщения не прочитать, документы не отредактировать, а таск-трекер сломался. Знакомая картина?

    Большинство веб-приложений остановит работу, но не все. Набирает популярность новая (или хорошо забытая старая) парадигма Local-First: веб-приложение всегда работает с локальной базой данных, а интернет нужен только для синхронизации.

    Подход внедряют у себя Linear, Miro, Trello, Figma, Notion, Excalidraw, Replit, Obsidian и растущее множество веб-приложений.

    Чтобы реализовать Local-First, разработчикам нужно решить ряд технических вопросов:
    – В какой локальной базе хранить данные?
    – Как приложение должно себя вести при отключении от интернета?
    – Как синхронизировать изменения без конфликта?

    Для всех этих ситуаций есть теоретическая база — структуры данных CRDT и алгоритмы синхронизации, написаны библиотеки для фронтэнда на React и Vue, разработаны базы данных.

    Выигрыши для пользователя:
    – Высокая отзывчивость интерфейса и моментальное сохранение изменений у пользователя.
    – Непрерывные сеансы работы в приложении — выше продуктивность.

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

  • Как начать вайбкодить бесплатно и без SMS

    Как начать вайбкодить бесплатно и без SMS

    Зарегистрировать аккаунт в Claude или OpenAI — целое приключение. Телефонный номер из другой страны добудь, VPN с той же страной подключи, как оплатить картой этой страны найди. Квест для технически подкованных и сильных духом.

    Попробовать вайбкодинг можно гораздо проще, бесплатно и без SMS.
    – Ставишь VS Code.
    – В расширениях ищешь и устанавливаешь Cline — AI-агент для программирования.
    – Создаёшь аккаунт на OpenRouter, используя почту.
    – В профиле выпускаешь API-ключ и вставляешь его в Cline.
    – В настройках Cline выбираешь бесплатную модель.

    Доступны различные модные модели бесплатно:
    – OpenAI gpt-oss-20b
    – Google Gemini 2.5 Pro
    – DeepSeek V3 и R1
    – Qwen 3 Coder
    – Kimi K2
    – Mistral
    – Llama 3

    На использование некоторых моделей есть дневные лимиты, набор доступных моделей постоянно изменяется. Можно купить токены и использовать любые модели из каталога.

    Cline сам по себе прекрасно сделан. Помимо OpenRouter, можно прописать ключи от любого AI API. Доступны MCP, работа с браузером, раздельные режимы планирования и выполнения, опциональное подтверждение опасных действий. Также Cline показывает все шаги, каждый запрос в API и количество затраченных токенов. Прямо видишь в ходе работы, как он думает и отсылает запросы.