Турбокодер
337 subscribers
68 photos
1 video
9 links
Блог инди-разработчика Болсуна Михаила.

Автор проектов TurboConf, FastCode 1С, Нетленка 1С и т.д.

Админ каналов @FastCodeIM, @TurboConf и других.

Дневник разработчика, идеи, мысли, маркетинг, монетизация, ИИ, GPT, нейросети
1С, C#, Telegaram, Web...
Download Telegram
Попробовал сам пользоваться, показалось не очень удобно просматривать длинные портянки текста при перемещении по вакансиям.

Поэтому, добавил режим предпросмотра и сводную информацию по вакансии.

В заголовке теперь пишется основная информация, дальше уже описание. При желании можно нажать Подробнее или промотать дальше.
👍1
За выходные добавил в бота несколько важных фич.

1. В заголовке у каждой вакансии теперь есть краткая сводная информация.

2. Если смотреть вакансии какой-то компании уж совсем невмоготу, то можно задать пользовательский фильтр. Т.е. если выражение, встретится в тексте, то вакансия будет заблокирована фильтром.

3. Автоматический поиск названия работодателя в объявлении. Это сделано для быстрого добавления фильтров, а так же чтобы упростить добавление вакансий. Таким образом достаточно будет только подтвердить его, ну либо отправить в сообщении.
👍1
Столкнулся с одной проблемой.

Бот есть, канал есть, соискатели есть, а HR менеджеры не хотят сами размещать вакансии.
Я написал нескольким. Вот мол бесплатно можно разместить вакансию, такой то у нас канал и сообщество.
Получил 1 ответ, что хорошо - размещайте ) Остальные игнор.
Еще 2 объявления разместили самостоятельно, я им не писал, сами нашли бота и добавили вакансию. 😕

Видимо этот бизнес как-то по другому устроен.

Причем, когда я не предлагал ничего, сами писали и просили разместится. Видимо, когда что-то предлагают бесплатно, это обесценивается. Ну или просто не хочется лишнюю работу делать. Я конечно могу сам разместить и за них, но хотелось бы чтобы этот процесс был независим от меня.

Ладно, тогда выберем другую стратегию. Об этом чуть позже 😉
В продолжении предыдущего поста.
Добавили вакансию по моей сегодняшней рассылке.
Так же часть поставила лайки.Может просто рекрутерам нужно дать немного времени 😀

Кстати в процессе добавления вакансии, не заполнилось одно поле и HR менеджер ответила на вопросы, что помогло исправить ошибку.
Первый раз увидел в отчете метрики Bing 🙂
Т.е. не зря Microsoft вбухала миллиарды долларов в OpenAI.

Подозреваю что Bing скоро может серьезно подвинуть Гугл и Яндекс, если те смогут конкурировать с возможностями ChatGPT.
Делал рефакторинг сегодня и допустил досадную ошибку. В результате пол дня пользователи неправильно регистрировались в боте, все с одним Id = 0. Да и похоже бот для них не работал корректно. Так что, скорее всего, потерял несколько десятков пользователей.
Блин, рефакторинг зло? Но скорее всего все из-за того, что не сделал юнит тесты.
А я все думал, почему пользователи перестали расти 😕
Почему я отказался от скидок и распродаж на свой продукт TurboConf?

Раньше я периодичеcки устраивал разные распродажи, например Черные пятницы, Новый год и т.д.
Скидки - мощный инструмент, который может разово дать большой буст продаж. Но после таких акций всегда идет месяц, а то и два затишья.
И это не самое плохое. Хуже то, что многие пользователи привыкли и стали откладывать продление годовых подписок, зная что смогут купить продукт дешевле на распродаже. Также я постоянно стал получать вопросы, когда же акция?

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

Поэтому, в прошлом году не было ни одной распродажи TurboConf.

P.S. кстати, скидки хорошо работают для привлечения новых пользователей через рассылки. Поэтому, возможно, я их еще попробую применить. Но только на новые лицензии, а не на продление.
Основная сложность продвижения и монетизации бота в том, что обычному пользователю не показывается никакой статистики. Например, у канала видно число подписчиков и количество просмотров постов. У бота эта информация доступна только админу (аналитика делается самостоятельно).

Новому рекламодателю сложно оценить примерную отдачу от рекламы (CPA и т.д.). Сколько пользователей в боте? 100 или 10000 не понятно. Он может только либо довериться информации от админа. Либо принять решения по другим признакам (популярность связанных с ботом каналов и групп, известность бота и т.д.)

Но с другой стороны есть и плюсы в этом. Даже, если у вас бот с 1 подписчиком - это не будет проблемой для начального продвижения. Т.к. никто об этом не узнает 😉
За все время админства своих телеграм-каналов я заметил такую любопытную вещь.
После практически любого поста, даже если он очень крутой и полезный будут происходить отписки.
Количество отписок пропорционально количеству аудитории канала.

В отличие от обычных веб-сайтов, YouTube и других платформ, в телеге почти совсем нет органического трафика.
Поэтому, если у вас нет какого-то источника новых пользователей, канал будет постепенно уменьшаться и уменьшаться. До нуля подписчиков скорее-всего не упадет, но в разы вполне возможно. У меня были случаи, когда с 900 опускался почти до 700.

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

Самое эффективное это закуп рекламы в профильных каналах или взаимопиар. Но это недешево, а для взаимопиара нужен соизмеримые каналы. Плюс если у вас уже крупный канал, то всю потенциальную аудиторию вы из них уже пропылесосили.

Нужна органика. Подойдут любые внешние ресурсы, которые имеют органический трафик. Сайт, YouTube и т.д.

Например, у канала FastCode 1C есть сайт, на котором я разместил всплывающую плашку со ссылкой на канал и пару банеров. Это дает постоянные переходы и подписки на канал.
Т.е. после поста за день может быть 5 отписок и 10 подписок. В результате мы всегда в плюсе и канал растет.
А дальше уже на этом основном канале я размещаю ссылки на свои другие каналы и там тоже аудитория прибавляется.
🤔1
Загадочная история произошла с одним из моих каналов.

У меня был канал TurboStore 1C на котором я выкладывал новости магазина, в котором хотел распространять разработки и скрипты. У канала была публичная ссылка @turbostore1c

Не так давно я заметил, что количество пользователей сократилось, а новые перестали подписываться. Я проверил и обнаружил, что тип канала стал частным. Т.е. публичная ссылка пропала. Я точно не менял эту настройку. При попытке вернуть ссылку пишется, что она теперь будет продается на аукционе Телеграма. Типа там Telegram продает короткие или узнаваемые ссылки.

Сам аукцион еще даже не запущен, разместить там ссылку на продажу еще нельзя.
Это получается сам Telegram отобрал ее?

P.S. нашел новость, что Telegram отобрал миллионы каналов. Изучаю этот вопрос.
Как дела у бота с вакансиями? Дела нормально.

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

Первое время, большинство вакансий добавляла моя дочь (10 руб. за вакансию😀) теперь работодатели сами уже публикуют.
Пришла в голову идея. Что если моим ботом для вакансий будут пользоваться админы других каналов?

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

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

Какие трансформации с ним происходят в процессе. Что разработать продукт - это только малая часть. Есть еще продвижение, монетизации и т.д.
Если интересен такого рода контент, обязательно ставьте лайки!

Продолжаем делать партнерскую программу для бота.

Я пообщался, для начала, с тремя админами крупных каналов. Двое готовы участвовать в программе. Один сказал, что партнерка не интересна, но просто разместит ссылку. Что тоже очень хорошо :)

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

Как теперь узнать от кого пришел пользователь? Есть такая штука как deeplink. Можно указать у бота параметр ?start=.., например https://t.iss.one/FastCodeIM_Bot?start=turbocoderblog
И теперь, когда пользователь нажмет Запустить в боте, мне в обработчике придет этот параметр и я привяжу реферала к пользователю.
Дальше создадим рефералов для наших новых партнеров и выдадим им ссылки.
Кстати, 10 лет назад я выпустил 1-ю версию программы TurboConf. И это не шутка 😀
🍾6🔥1
Почему разработчику нужно радоваться когда возникают ошибки в программе?

Ответ простой. Потому, что вы узнали о ней.

У меня было много случаев, когда я был в полной уверенности, что все работает. Я все проверил, протестировал на своих устройствах и т.д.
И тут внезапно какой-нибудь пользователь пишет - программа не работает. Причем бывает это в разных формах - от позитивной, до совсем негативной.
Если удастся получить подробную информацию по проблеме и пользователь идет на контакт - эта информация на вес золота.

Внезапно может выяснится, что программа может не работать у сотен пользователей. Когда у программы есть демо-версия, 99% процентов пользователей просто удалят демку, вместо сообщения о проблеме. Хотя в большинстве случаев исправить ошибку можно достаточно быстро и просто.

Поэтому лично я всегда стараюсь сообщить об ошибках разработчикам.

Как раз сегодня выяснилось, что TurboConf может подвешивать 1С на Windows 7 на релизах выше 8.3.21 и проблеме как минимум пол года.
Понятно, что Windows 7 уже не так актуальна и снята с поддержки MS, но еще продолжает использоваться в энтерпрайзе.

Проблема интересная, в чем она заключается и как ее буду пытаться решать напишу позже.
🔥2👍1
После нескольких лет бесперебойной работы, внезапно решил упасть хостинг.

Все мои сайты и сервисы стали недоступны. Но благо это произошло в пятницу вечером, когда активных пользователей было не так много :)

Надо отдать должное RuVDS быстро ответили на запрос в техподдержку, провели работы и решили проблему за несколько часов. Не пришлось прибегать к плану Б (запускать сервисы на резервной машине). Главное в такой ситуации не отмалчиваться, сообщить о проблеме, отвечать на письма пользователей и держать их в курсе проводимых мероприятий. Всем хороших выходных ))
👍6
Нужен ли рефакторинг бизнесу?

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

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

Рефакторинг не принесет денег в моменте. Скорее всего добавит новых ошибок, что приведет к потерям в доходах. За это время не появится новых функций в продукте и т.д.

Да, через какое-то время это возможно окупится. А может и нет. Может продукт вообще устареет и проще написать новую версию или другой проект. В общем затея рискованная.

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

А вы что думаете. Нужен рефакторинг с точки зрения бизнеса или можно обойтись без него? 😉
🔥3👍2
Как, на первый взгляд, простая задача превращается в сложную.

Пришлось поменять сервис SMTP рассылки, которым я пользовался уже долгое время.
Простая задача: создать учетную запись в новом сервисе, подтвердить домен, добавить записи DKIM/SPF/DMARC в DNS и заменить несколько параметров в конфиг-файле (логин, пароль, порт, хост). Все - ну пусть максимум час-два на все.

Но не тут-то было...

После всех вышеуказанных действий все заработало, но письма стали приходить с неправильной кодировкой темы письма, типа ??????? ?????????? или Восстановление пароля

Странно, все вроде работало до этого. Начинаем ковыряться в C# SmtpClient, штатный класс для отправки писем. Пробуем менять кодировки туда-сюда. Ничего не помогает.

Смотрим заголовки письма. Почему-то тема приходит в PlainText:

Subject: Восстановление пароля

а не как должно быть:
Subject: =?utf-8?B?0JLQvtGB0YHRgtCw0L3QvtCy0LvQtdC90LjQtSDQv9Cw0YDQ?=

Гуглим и находим, что это баг в асинхронном методе SendMailAsync. Он известен, но Microsoft почему-то не исправляет его уже долгие годы. Видимо предыдущий сервис как-то исправлял кодировку сам. Пробуем на всякий случай обновить .NET до последней версии, но не помогает.
Пробуем несколько обходных путей, которые предлагаются. Тоже.
В общем, беру синхронный метод Send и оборачиваю его в асинхронный и все работает. Понятно, что костыль но т.к. отправка на сайте нормально не работает, нужно что-то срочно делать.

Итого, задача усложнилась в несколько раз и потребовала почти день, вместо одного часа и то не решена до конца . А у вас часто бывает такое?😉
🔥6👍1