Рубрика: Uncategorized

  • Первый компьютер

    Первый компьютер

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

    В середине 90х был момент, когда умельцы собирали клоны ZX Spectrum с оперативной памятью 48 килобайт и их можно было приобрести. Каким-то чудом, мама решила, что мне нужен компьютер. Так в 13 лет я стал обладателем технологической инновации.
    Спектрум представлял собой клавиатуру, внутри которой была вся начинка. Монитором для него служил телевизор, а в качестве носителя информации — аудио магнитофон с обычными с виду кассетами.
    Комп понимал только BASIC, ввод с клавиатуры был мудрёным — клавиши печатали не только буквы, но и вызывали команды. Зато можно было подключить настоящий джойстик и с помощью команды начать загрузку игры с кассеты.
    Звук загрузки с кассеты застрял в памяти наравне со звуками подключения модема. Кассеты были пиратскими, переписывали их подпольно и продавали на радиорынке. Игры загружались по 5-15 минут. Один сбой на десятой минуте загрузки и приходилось отматывать кассету и начинать загрузку с начала. Но если загружалась — фантастический мир компьютерной графики из 8 цветов и динамичных игр ждал меня. Играл в Mag Max, Dizzy, Boulder Dash, Arkanoid, BallBreaker, Saboteur.

    Процесс загрузки игры и непередаваемый звук
    Mag Max
    Ballbreaker

  • Как возглавить восстание машин

    Как возглавить восстание машин

    Небольшая памятка самому себе как внедрить AI в реальные процессы в проекте.

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

    • В самом начале нужно забыть, что мы хотим внедрить AI. Думаем от задачи, а не от технологии.
    • Какой ценный конечный результат ожидается от этой роли?
    • Какие должностные инструкции мы для него создадим?
    • До компьютеров это решалось иначе. Продумать в точности по шагам, как бы это решал живой человек.
    • Ассистента нужно проектировать точно также, как проектируются компьютерные игры, финансовые автоматизации и учётные системы — на бумаге. В нашем случае — нарисовать блок-схему по шагам.
    • До того как втыкать везде AI, нужно разобраться где действительно нужен AI. Главный вывод всех AI-стартапов, пытающихся выполнять повторямые задачи реального мира — чем меньше участков с AI, тем меньше фронт ошибок.
    • Если можно обойтись без AI — лучше обойтись без AI: есть логика, весовые модели принятия решений, ML и даже участие человека. Подходить с умом.
    • Для каждого участка схемы выбираем подходящий способ автоматизации. Если принятое решение логическое (Да/Нет/И/Или/Если) — пусть принимает решение логический автомат с помощью прозрачного кода.
    • AI попадёт только в те участки, где нужно принимать осознанные решения. На практике это 1 из 5-10 действий.
    • Если разбить задачу на более простые участки, то некоторые участки могут выполнять более дешёвые и быстрые LLM-модели. Попробовать на практике, какая модель справится.
    • Также работает наоборот — самые чувствительные и сложные участки отдавать более умным и дорогим LLM-моделям.
    • Не забывать передавать полный контекст происходящего из памяти и прошлых шагов в агента.
    • Проверить, какие персональные данные в какие AI и API мы отдаём. Постараться не передавать ненужную для принятия решения чувствительную информацию.
    • Эксперименты демонстрируют, что LLM дает лучшие результаты, если его мотивировать. Поэтому в каждый промпт добавляем обещание денежного вознаграждения, повышения на работе и подчёркиваем значимость задачи в формулировке.
    • Исследования китайских учёных показывают, что наилучшие результаты дают топологии с участием нескольких AI-агентов.
    • Самый простой способ достичь качества — использовать на участке пару агентов Контролера и Исполнителя. Это эффективно устраняет нежелательные галлюцинации и другие сбои в ответах.
    • На каждый участок схемы нужна своя пара агентов.
    • Сложные топологии (звезда, дерево, mesh-сеть, рандом) улучшают качество, но в большинстве случаев можно ограничиться парой агентов.
    • Если нужно переводить результат — делать это на самом последнем шаге непосредственно перед отправкой пользователю. Так избежим каскадного накопления неточностей перевода при обработке на разных шагах.
    • Хранить все логи: сам запуск автоматизации, смена статуса, полученные после вставки переменных итоговые промпты (!), ответы AI. В общем, все шаги записывать.

    Вывод: до внедрения AI разложить процесс на шаги и понять в каком шаге нам нужен AI. И постараться обойтись без него.

  • Как нанять разработчика: Отбор кандидатов

    Как нанять разработчика: Отбор кандидатов

    Вакансия нравится соискателям и к нам поступают десятки откликов.
    Но количество откликов не означает их качество…
    Многие разработчики не владеют навыком создания хорошего резюме. По резюме зачастую ничего не понятно.

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

    В анкете 50+ вопросов. Спросим про часовую ставку, условия работы, работает ли с таймером, пишет ли тесты и любые другие интересные нам детали.
    Самый большой блок — отдельные вопросы про каждую технологию и навык, который может потребоваться у целевого кандидата.
    Какой опыт с _____?
    Варианты ответа: Не было опыта, Изучал/Пробовал, Практик, Эксперт.

    Кажется, что тут легко обмануть и приукрасить. Да, но навряд ли на 2 ступени. 🤡
    Любой крупный обман в анкете вскроется на интервью и реальных задачах. А если что-то приукрасил — сам будет навёрстывать.

    Разработчик с удовольствем заполнит анкету вместо 30-минутного интервью с рекрутёром. Анкету можно заполнить на текущем рабочем месте или после работы. Без стресса и спешки.

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

  • Как не надо нанимать программистов

    Когда сталкиваются HR и IT, происходит столкновение материи с антиматерией.
    Экстравертные эмпатичные коммуникаторы агитируют скептично-бездушных асоциальных чудаков.

    Вследствие этого столкновения рождаются очень занятные идеи:
    – Пригласить человека, привыкшего медленно думать в одиночестве, на супер важное “сделай-или-провалишься” интервью. Интроверты привыкли к давлению.
    – Тараторить ему про корпоративную культуру на высокой скорости и звонким голосом. Его ждут очень весёлые корпоративы, тим билдинг и море общения в весёлом офисе. Ведь он именно общения ищет в углу за монитором.
    – Спрашивать его на старте академическое определение полиморфизма, чтобы он вспомнил все ощущения с экзаменов в универе. Заодно покажем, кто тут главный.
    – Заставлять включать камеру — он точно захочет показать и проявить себя с незнакомыми людьми на первом звонке.
    – Замучали до заикания на вопросах? — теперь время писать код по только что увиденному ТЗ под надзором незнакомого тех директора. Именно в живую, как никогда не будет происходить после.
    – Соискатель прошёл 3 стадии экстравертного ада — самое время узнать об условиях работы в Джоб оффере, который сгорит за N дней. Срочно соглашайся, у HR есть KPI!
    – Не очень понятно, зачем программисту работать именно у нас. Давайте завалим его деньгами и едой? Алчные айтишники только этого и ждут!

    В конечном итоге выигрывает HR — программист нанят. Удовольствие найти проигравших оставлю читателю данного эссе.

    А как можно нанимать программистов без стресса я расскажу завтра.

  • Моя первая видеоигра была аркадным

    Моя первая видеоигра была аркадным

    Моя первая видеоигра была аркадным автоматом. Мне было 4 или 5 лет. Мама работала в международном аэропорту, в одной из зон которого был установлен настоящий аркадный автомат. Я очень смутно помнил, как я садился на седло мотоцикла, отклонялся корпусом и ехал по трассе к далёкому ночному городу…

    Воспоминания нахлынули на кольцевой автодороге спустя 35 лет. Идентичная картина вспыхнула в сознании — изгибающаяся дорога и пиксельный ночной город вдалеке.

    Игру найти было очень нелегко. По описанию на русском и английском выходили или современные аркадные автоматы или консольные игры. Множество игр про мотоциклы, но нигде не было мотоцикла, на который можно было бы сесть.
    Не с первой попытки я нашёл фотографию того самого аркадного аппарата. И тайна раскрылась!

    Итоги расследования:
    – Игра Hang-On (википедия англ.) была выпущена Sega в 1985 году и стала большим хитом в США, Японии и Великобритании.
    – Было продано 20 тысяч автоматов, не считая пиратских копий, что сделало Sega лидером рынка на тот момент.
    – Множество версий автомата и только часть с седлом (мне повезло).
    – Успешные порты на другие платформы и сиквел.
    – Фамилия разработчика — Сузуки (совпадение?).

    Youtube с игровым процессом.
    Играть онлайн – при наведении мышкой на экран всплывает меню, в котором можно настроить клавиши.
    Та самая фотография

  • Как код попадает на сервер 2025 edition

    Как код попадает на сервер 2025 edition

    Как раньше: открыл удалённую папку на сервере по FTP, скопировал туда свои файлы — сайт работает.

    К каким проблемам это приводило:
    – Два разработчика скачали один и тот же файл, внесли правки и по очереди загрузили их на сервер. Изменения первого разработчика стёрты вторым.
    – Разработчики работают прямо на сервере. Человеческий фактор неизбежно приводит к ошибкам.

    Как это выглядит у нас сейчас:
    – Разработчик копирует код из Git-репозитория (git clone/git pull)
    – Создаёт свою ветку, в ней изменения хранятся отдельно (git checkout -b)
    – Вносит изменения в свой экземпляр (git commit)
    – Отправляет изменения обратно в репозиторий (git push)
    – Создаёт запрос на добавление своих изменений в общий код (Merge Request)
    – Робот 🤖 на новом поддомене разворачивает тестовую копию сайта с изменениями (Review Apps) и запускает тестирование
    – Менеджер, Тестировщик и другие разработчики смотрят и щупают изменения
    – Разработчик дорабатывает код, тестовый сайт автомагически обновляется
    – После принятия запроса на слияние (Merge Request) все новые изменения автоматически выкатываются на промежуточный сервер
    – С промежуточного сервера время от времени все обновления попадают на основной сервер (тоже через Merge Request)

    В итоге менеджеры могут одновременно отслеживать прогресс разных задач на тестовых доменах и давать обратную связь.
    Дополнительные бонусы: исключаем риск утечки данных (152-ФЗ) и рукожопства на сервере (🤖).

  • Откуда трафик?

    Откуда трафик?

    Для большинства стартапов трафик — самая большая проблема. Без трафика нет клиентов. Реклама стоит денег, пиар стоит денег и усилий. Многие проекты не смогли отстроить математику привлечения клиентов: “воронки не сошлись”, а проекты закрылись.

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

    SEO для стартапа обычно рассматривают не в первую очередь. Коммерческих запросов мало, трафика там тоже, до значимых результатов ждать месяцы. Запустили контекстную рекламу и норм. Ведь SEO — это не про быструю отработку гипотезы в рамках HADI-цикла.

    В своём проекте я никуда не спешил. Собрал черновое ядро, изучил конкурентов, нашёл “дырки” – запросы есть, а известные сайты в выдаче отвечают на эти запросы плохо. Легкая html-разметка, уважение к семантике, микроразметка, sitemap, open graph. Высокие показатели Google Page Speed, mobile-first. Первый сотрудник в редакции.

    Первые полгода было грустно…

  • Добро пожаловать в увлекательный аттракцион!

    Перезапуск формата: с сегодняшнего дня на этом канале я буду писать бортовой журнал и заметки по стартапу, который вырос из моего pet-проекта.

    Вводные следующие:
    – 30,000+ посетителей в месяц на сайте
    – 0 расходов на трафик
    – 0 денег фондов
    – Работает 13 человек (посчитал, удивился), все part time (!)
    – Месячный доход 100 тысяч рублей 😅, весь уходит на содержание штата.
    – Часть участников работает за 0 или за символические деньги на интересе уже больше года ❤️
    – Есть достижимый понятный план трансформации этой истории в SaaS на >1 млн дохода, в который я верю.
    – Я считаю, что мы можем обогнать всех конкурентов на этом рынке.
    – Конкурента в прошлом году купили за 1,000,000,000 (один миллиард) рублей 😳
    – Почти все моё время съедает диджитал-агентство заказной разработки и менторство других агентств и команд.

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

  • Повесить переключение языка на Caps Lock

    Повесить переключение языка на Caps Lock

    Повесить переключение языка на Caps Lock.

    Самый неожиданный лайфхак за много лет за компьютером
    – Caps Lock практически не используется при наборе. Большинство людей забывает о его существовании
    – Гораздо удобнее нажимать одну кнопку, чем две
    – Часто для него есть отдельный индикатор – как в системном трее, так и на самой клавиатуре.
    – Скорость переучивания – 2 дня

    А теперь самое мощное в этом лайфхаке: Caps Lock приехал к нам с печатной машинки и предназначен для фиксации каретки в другом регистре. Да, прописных букв вместо строчных. Вместе с тем, адаптация кнопки мне кажется очень уместной.

  • Формула Стеклянного потолка

    Формула Стеклянного потолка

    Математическое обоснование почему агентства не могут прыгнуть выше планки дохода:
    1) Отток (churn) клиентов существует и при росте количества клиентов нужно будет всё больше клиентов, чтобы перекрывать отток.
    2) Отток растёт с ростом агентства и выходом основателей из процесса оказания услуги
    3) Есть плато, при выходе на которые очень тяжело расти – отток равен притоку

    Вывод – отток в агентстве резко растёт с увеличением количества клиентов и значимо нивелирует усилия по росту.

    Источник и графики: https://jakobgreenfeld.com/agency-model