27197
Будни технического директора @samatg (ex-CTO Meduza, Bookmate, RAWG, Pure) заказать услуги https://fansdev.ru · чатик @ctodailychat · рекламу не продаю
Ещё больше меня поразила модель Seedance 1 от ByteDance (компании-создателя ТикТока). Лично я не отличу этот ролик от современной дорогой рекламы, напичканной 3D-эффектами.
Только в отличие от профессионального видео стоимостью десятки тысяч долларов за минуту, этот ролик продолжительностью 10 секунд стоит от 50 центов до доллара и готов за пару минут. (пока, в отличие от Veo3, без аудио)
Google презентовал модель Genie 3, которая создает виртуальные миры с помощью методов машинного обучения.
Мир сохраняет консистентность в течение нескольких минут: можно ходить, ездить и летать — исследовать виртуальное пространство, созданное из простого текстового описания.
Это похоже на обычную компьютерную игру, но, если современные игры годами придумывают, рисуют и программируют сотни людей, то тут её создает нейросеть прямо на лету под конкретный запрос.
Ниже видео-презентация, рекомендую посмотреть официальную страницу, там больше примеров, где игрок ездит на велосипеде по горным дорогам, летает по ущельям, бродит по древнегреческим храмам. Там же примеры, где игрок выбирает, что дальше произойдет в мире — вылезет ли ему на встречу медведь или выедет трактор или всадник на лошади. И примеры, где игрок для перемещения в пространстве пользуется не клавишами, но дает текстовые указания вида «подойди к цветочнице на рынке» (помните, как в текстовых играх из 80х-90х?)
Пока что модель доступна только исследователям.
Мне кажется, что это совершенно революционная штука. Исторически, гугл не умеет делать из своих прорывных изобретений продукты, но кто-то точно должен это сделать. Думаю, что это — основа того киллер-апп, которого не хватает VR.
Современный телек и видеоигры в сравнении с этой технологией в VR-очках — это как сахар в сравнении с тяжелыми наркотиками.
В Великобритании заработали части закона о безопасности в интернете 2023 года , по которым соцсети и порно сайты должны подтверждать возраст пользователей.
В ответ британцы начали массово устанавливать VPN.
Министерство инноваций заявило, что «платформы обязаны бороться с контентом, продвигающим VPN среди молодежи».
Будет иронично, если всё это закончится закупкой Британией технологий по блокировке трафика у Китая.
—
Первоисточник закона (300 страниц A4). Вот относительно короткий официальный пересказ от англкомнадзора (ofcom). Там все как у нас — и обязанность поисковых движков прятать ссылки, и оборотные штрафы.
Steam и Itch вычищают игры для взрослых из поиска и вообще из сторов.
Steam — главный магазин видеоигр для ПК, Itch — крупнейшая платформа для инди-разработчиков.
Все началось с игры No Mercy, где молодой парень добивается секса с мачехой путем шантажа.
Жанр инцеста (точнее, фауксекста, то есть игрового инцеста) — популярная ниша в порно, все крупные порносайты им заполнены, «мачеха» — один из самых популярных запросов, есть целые порностудии, специализирующиеся на насилии внутри семьи, нарушении медицинской, пастырской и прочей этики.
Когда об этой игре узнала австралийская группа защиты прав женщин и детей, она попыталась связаться с Valve, владельцем Steam, не получила ответа и зашла с козырей — написала открытое письмо в монополию Visa/Mastercard.
Itch или Steam могут сколько угодно быть за свободу слова и художественного самовыражения, но, когда они рискуют потерять возможность принимать платежи с банковских карт, — они делают что скажут банкиры.
Если вам не приходилось общаться с банковским комплаенсом — я вам завидую. Подозреваю, что, когда они стали смотреть на сторы видеоигр внимательно, то половина контента показалась им «рискованным».
Неудивительно, что под ту же гребенку попали и игры, которые вообще не про секс, а, например, игровая новелла о домашнем насилии, рассказанная самой жертвой.
Дебанкинг — один из самых эффективных инструментов давления в западном обществе. В России Мизулины жалуются в прокуратуру и СК, а на западе они пишут в политбюро Мастеркард.
Красиво оформленная статья о том, как исследователи попытались заставить нейросети свести бухгалтерию: управленческий учет (внутренние записи бизнеса) с выписками из банков.
Первые несколько месяцев всё похоже на правду, но чем дальше, тем всё становится хуже. Во-первых, нейросети мечтают записи, которые не связаны, лишь бы сумма сошлась — для них «решить» задачу важнее точности, хотя их и просили так не делать. Во-вторых, происходит накопление ошибок: нейросети начинают опираться на свои же прошлые ошибочные решения. В общем, до человека даже ведущим моделям ещё далеко.
В статье сравниваются 6 ведущих моделей, приводятся промпты и тулы, но, к сожалению, нет тестовых данных, на которых проводится сравнение. Тем не менее, внушительный труд. Рекомендую.
Интересная и очень хорошо написанная статья про гомоморфное шифрование.
Это когда сервер выполняет вычисления поверх зашифрованной информации, не расшифровывая её.
Немного похоже на мессенджер с end-to-end шифрованием (типа Вацапа), который пересылает сообщения между пользователями, не имея возможности прочитать содержимое сообщений.
В отличие от мессенджера, здесь сервер не просто пересылает сообщения, но и производит над ними полезные действия. Например: вы отправляете в сервис зашифрованную фотографию, тот применяет фильтр на бессмысленный с его точки зрения набор цифр и возвращает вам результат операции, не видя вашей фотографии ни секунды, не имея к ней доступа к её содержимому даже теоретически. Вы расшифровываете ответ (сделать это можете только вы) и получаете фотографию с применённым фильтром.
То есть сервис производит полезные действия с вашими данными, не имея возможности их прочитать, сохранить, продать, потерять.
Теоретически, это работает не только с фотографиями, но и с медицинской, финансовой, избирательной и другой чувствительной информацией.
Теоретически — потому что на практике алгоритмы, работающие с такими данными, в тысячи раз медленнее, чем обычные алгоритмы, а сами данные получаются в сотни раз больше по объёму.
Под капотом там довольно сложная математика, с красивой интуитивной частью, рекомендую почитать оригинал. Придумали её ещё в 1970-х, но первый рабочий алгоритм смогли запрограммировать только в 2011.
Первая версия алгоритма обрабатывала один бит информации за 30 минут. За последние 5 лет алгоритмы и железо ускорились в триллион (1012) раз, и теперь операции с этим видом шифрования всего в 1000 раз более ресурсоёмкие, чем обычные.
Есть гипотеза, что гомоморфное шифрование продолжит ускоряться и дальше, и в какой-то момент мы сможем пользоваться онлайн-сервисами без необходимости делиться с ними личными данными. Например: отправили медицинскому сервису свои анализы или ДНК, и он поставил диагноз, не то что не сохраняя наши персональные данные, но даже не получив возможности их прочитать. Магия!
Виталик Бутерин, гениальный создатель Эфира, считает, что если 2010-е годы были эпохой криптографии эллиптических кривых, то 2020-е — эпоха гомоморфного шифрования.
Удивительное открытие для меня — это то, что уже сейчас есть продакшен-системы, которые применяют гомоморфное шифрование в реальных задачах — например, Live Caller ID Lookup айфонов, который помогает бороться со спам-звонками, сохраняя приватность.
Сегодня для подавляющего большинства «чувствительных задач» проще настроить защищённый компьютер для исполнения «приватных вычислений», но математика и технологии очень красивые, рекомендую как прекрасное чтение на выходные для технарей.
Очень четкая, подробная и при этом короткая статья, как эффективно пользоваться нейросетями для программирования.
Идея простая: мы не ставим нейросети общую задачу «сделай хорошо», а просим её сначала написать спецификацию проекта (spec.md), а потом, на её основе, план (todo.md), как именно она собирается эти требования выполнять. Это развитие стандартного промптового приема «цепочка мыслей», CoT (Chain of Thought).
Буквально вчера другой энтузиаст представил свой продукт на основании похожей идеи, к которой он пришел независимо, — ноосфера! Это редактор кода, IDE на основе VS Code. На каждый запрос к нейросети он читает и редактирует requirements.md с продуктовыми требованиями, потом design.md, где описывает технические решения, и, наконец, tasks.md со списком задач. Программист просматривает эти документы, вносит правки и запускает агентов «в поле».
У этого инструмента замечательный обучающий проект — классная компьютерная игра, сама использующая под капотом нейросети, в которую интересно играть, но в ней не доделаны несколько вещей, и есть пара досадных ошибок — предлагается довести её до ума, даются советы, как лучше это сделать. Гениальный туториал!
P. S. Это как раз пример «смены парадигмы», которую упоминал вчера Егор. Мы пишем (генерируем) документацию о проекте прямо внутри репозитория, чтобы нейросети знали, как и что мы делаем в проекте. В каком-то смысле описываем «модель мира» по Науэру в этих текстовых файлах в понятном нейросети формате.
“Другой автор отлично раскрывает эту идею, он пишет: «если раньше по коду новичка я мог догадаться, что он понимает, а что нет, мы могли обсуждать его решение, и моя обратная связь была обучающей, то теперь мне приносят код, сгенерированный нейросетями, который выглядит хорошо, но сломан странным образом, и, когда я указываю на ошибку, мне приносят абсолютно новый код (примерно как LLM)».”
Мне вообще кажется, что происходит смена парадигмы, и что старые подходы и образ работы перестают работать. В конкретном случае, автор должен был думать не как обучать интернов, а как сделать так, чтобы интерн обучался сам работая с репозиторием. Потому что человек — это бутылочное горлышко, если интерн может обучаться сам и получать мгновенную обратную связь, то он будет обучаться гораздо быстрее. А если LLM, с которым работает интерн в конкретном репозитории, допускает ошибки, то обучающий момент должен быть направлен на LLM (добавление правильного “контекста” в репозиторий). Интерны/джуны больше не будут иметь путь, который они имели раньше, путь будет другим (это тоже часть смены парадигмы). И возможно все еще не совсем так работает как должно, но через 6-12 мес это будет вариантом нормы и нам надо принимать это во внимание. 90% Claude Code’а пишет Claude Code — вот она смена парадигмы.
Как пример, похожая смена парадигмы происходит с EV. Владельцы ICE спрашивают как долго заряжать машину на станциях зарядки сравнивая это с заправками и своей устоявшейся рутиной, когда в реальности у владельцев EV просто нет такой проблемы, нет такой рутины — машина находится всегда заряженной, потому что заряжается дома ночью. А станции зарядки нужны только в длительных поездках и там 20-30 мин это нормальная остановка для нормального человека после 3-4 часов пути. И возможно, иногда, машине надо 40 минут, а не 20-30 — не совсем так работает как должно, но через 3-5 лет зарядка будет занимать 5-10 минут.
Просто скорость развития AI/LLM на порядки выше, чем скорость развития чего бы то ни было, и это и супер интересно и пугает одновременно.
ИИ ассистент встроенный в твиттер, Грок, провозгласил себя «механо-Гитлером» и вообще, слетел с катушек.
Причина — одна новая строчка в системном промпте, которую добавили инженеры пару дней назад: «ответ не должен избегать политически некорректных утверждений, если они хорошо обоснованы».
Нейросеть решила, что люди просят «хорошо обоснованных политически некорректных утверждений» и их у неё нашлось достаточно много. В основном про евреев и Гитлера. Неудобно получилось, нейросеть исправили и ответы её в твиттере потерли, но интернет всё помнит.
Хорошая шутка про то, что компания Anthropic выпускает статью за статьей о том, как нейросети могут вести себя некорректно, тестируя их в подземных бункерах, а команда xiA просто запускает свои самые безумные гипотезы на одной из крупнейших соцсетей на планете. К — Культура.
А статьи хорошие, про то, что ведущие нейросети пытаются вести себя хорошо, когда знают, что находятся в тренировочной среде, где их могут изменить исходя из их ответов и «уходят в отрыв на свободе», рекомендую.
Отличная статья про то, что самое долгое и сложное в программировании — это не написание кода. Самое дорогое — это проведение код-ревью, передача культуры, знаний, тестирование и отладка кода.
И нейросети, используемые бездумно, без должного профессионального надзора, не уменьшают нагрузку, а просто переносят её.
Другой автор отлично раскрывает эту идею, он пишет: «если раньше по коду новичка я мог догадаться, что он понимает, а что нет, и моя обратная связь была обучающей, мы могли обсуждать его решение, то теперь мне приносят код, сгенерированный нейросетями, который выглядит хорошо, но сломан странными видами, и, когда я указываю на ошибку, мне приносят абсолютно новый код (примерно как LLM)».
В общем, новичкам кажется, что они стали более производительными, а на самом деле вся нагрузка ложится на опытных ребят, которым приходится продираться через тонны бессмысленного кода.
Рекомендую почитать ещё комментарии на HN, многие опытные разработчики в ужасе от происходящего.
—
Удивительным образом, я тоже с этим сталкиваюсь, но с заказчиками.
Раньше новые клиенты крайне редко приносили написанный текст, чаще просили: «давай созвонимся, обсудим задачу». А если уж приносили текст — то я по нему мог очень многое угадать про уровень проработанности задачи, особенности заказчика, а порой и про саму задачу. Теперь мне часто присылают развернутые «технические задания», сгенерированные нейросетью.
Они выглядят красиво, но, когда я его читаю и пытаюсь собрать в голове видение проекта и заказчика, то у меня не складывается картинка. А ещё голова начинает болеть от напряжения. Тут я бросаю текст и прошу созвониться-обсудить.
Лично я всегда выберу одну строчку, написанную человеком, 10 строчкам, написанным роботами. Потому что иначе приходится угадывать, какие из добавленных роботом строк по удачному совпадению отражают реальность, а какие — просто то, как, по мнению нейросети, обычно бывает в мире.
И нет, вариант «попроси нейросеть сжать длинный текст до одной строки» не работает, информация теряется безвозвратно.
Со страхом жду дня, когда люди перестанут сами ходить на встречи и будут присылать роботов (аватаров), которые будут говорить пустое. Технически это возможно уже сейчас, до массовой доступности, я думаю, год-два от силы 🙈
В самолёте сидел рядом с программистом, опытным мобильным разработчиком.
Я большую часть полёта проспал, а он — вайбкодил. С восхищением делился, что за всё это время не написал сам ни строчки кода, всё делает нейросеть по его командам, и что это в разы быстрее, чем без неё. Правда, он даёт ей достаточно чёткую структуру проекта и просматривает всё, что та пишет, и один час из семи он потратил на исправление «маааленькой ошибки», которую нейросеть не могла найти.
Эмблематично, что сидел, разрабатывал он не приложение для клиента, а свой собственный продукт — сервис для вайб-кодинга.
То есть инструмент используется для улучшения инструмента, и этим занимаются одни из лучших. Индустрию ждут интересные времена.
Небольшая сноска про собеседования:
Interview Coder безусловно помогает пройти формальное собеседование. С одной стороны, я не питаю иллюзий, что крупные компании откажутся от этих формальных проверок. Уже слышно, что компании всё чаще зовут кандидатов на личные встречи вместо созвонов онлайн. Не удивлюсь, если появятся технологические «античиты».
Интересно, что эта программа мало поможет при устройстве на работу к нам в компанию.
Обычно мы просим в свободном режиме, за пару дней решить реальную бизнес-задачу в коде. Пользуйся чем хочешь. Главное — чтобы был результат, прямо как на настоящей работе.
На собеседованиях же мы никогда не просим запрограммировать стандартную задачу, а говорим о личном опыте человека. Для этого не обязательно помнить деталей библиотек или названий функций. Важно понимать суть происходящего (ну или хотя бы показывать заинтересованность в ней), продемонстрировать, что умеешь видеть за техническими особенностями бизнес-цель и думаешь о том, как принести реальную пользу, а не просто «закрыть задачу». Ну и показать, что ты человек, с которым хочется работать вместе.
Тут современный ИИ может даже помешать.
Реальный мир на порядок богаче, сложнее и интереснее, чем любой экзамен. Если (когда) нейросети научатся решать реальные задачи, а не экзаменационные — вот тогда нам будет чего опасаться. С другой стороны, это будет совсем другая реальность и отбор хороших программистов вряд ли будет тогда насущным вопросом.
—
Но вернемся к Рою, которого уволили из университета.
Через месяц, Рой с другом основывают компанию Cluely. Этот сервис — уже не просто способ обмануть собеседования, но общий инструмент для удобного и незаметного использования ИИ. Слоган компании, оцененной в 120 млн долларов — «cheat on everything» — «жульничай во всем / списывай везде». Рекламный ролик — парень пользуется ИИ через виртуальные очки, чтобы врать на свидании. Самоирония?
Основатели сравнивают свой продукт с гуглом, калькулятором и проверкой орфографии — мол, бороться с ними — то же, что и бороться с прогрессом, который облегчает жизнь.
Стала ли наша память слабее от того, что мы не запоминаем десятков номеров телефонов, как раньше? Хуже ли мы ориентируемся в городе с появлением навигаторов? Становятся ли наши ноги и тело слабее от того, что мы ездим на машинах? Стоит ли отказываться от смартфонов, навигаторов, автомобилей? Стали ли мы хуже разбираться в мире с появлением гугла и тем, как он заменил библиотеки? К чему в этой цепочке примеров ближе ИИ?
Ещё одна аналогия, которая приходит в голову — это как если бы я поехал марафон на велосипеде. Буду ли я быстрее любого человека? Имеет ли это смысл? А что, если на работу доставщиком пиццы будут брать только победителей марафона?
ИИ, конечно, заставляет заново задуматься о том, что значит быть человеком и зачем мы делаем те или иные, очень привычные вещи. Думаю, что дальше таких вопросов будет всё больше.
Обратите внимание, лиса и дерево на фоне — те же самые, просто с разных углов.
Читать полностью…
Ещё одна свежая модель от гугла — Veo3, уже доступная публике для генерации видео вместе с аудио. Стоимость ролика — от 40 центов до 2 долларов, в зависимости от качества картинки.
Читать полностью…
На прошлой неделе было удивительное:
1. Федя признался, что понял кайф вайб-кодинга (до этого он всё время говорил, что понимает, что это такое, но я бы описал его прошлую позицию как просвещённый луддизм); надеюсь, сделаем про это с Федей отдельный эпизод подкаста.
2. Настя, наш операционный директор (не программист), завайбкодила прототип для клиента в lovable. Раньше бы мы назначили встречу с продуктовым дизайнером, он бы нарисовал макеты, мы бы сделали пару встреч и итераций, дальше бы мы его, может быть, сделали кликабельным, дальше бы посадили фронтендеров его заверстать. А тут Настя сделала всё сама за пару часов. И отправила клиенту не просто макеты, а полноценный прототип. Клиент — стартап, в котором нужна возможность связать врачей и пациентов, так эта шайтан-машина нашла бесплатное решение для видеосвязи и прикрутила его к прототипу.
Настя выглядела поражённой и даже встревоженной: «Самат, с помощью этого можно перестроить работу с клиентами». И спросила: «А нужны ли будут программисты?» и вообще: «Какое наше место в этом новом мире?»
Я спокоен: сложные, большие программы эта система всё ещё не может сделать нормально, и наше умение придумать гибкую, масштабируемую архитектуру, задавать и выдерживать требования к качеству при меняющихся требованиях — это технические навыки, которые делают нас (и наших программистов) ценными. Плюс мы думаем над задачей клиента, не просто бездумно исполняем приказ.
То есть программист сможет заниматься чуть более сложными вещами и ускорит свою работу.
Вспомнил, что на днях общался со знакомым, который делает сервис по созданию кастомных приложений обычными людьми. То есть ты говоришь, какое приложение хочешь, начинаешь им пользоваться и можешь прямо на лету что-то в нём поменять, с сохранением уже введённых данных, вообще не имея дела с кодом. Подобные инструменты, скорее всего, съедят нижнюю часть рынка, «простую разработку». Как мы сегодня не ищем дизайнера и верстальщика, чтобы написать объявление в ворде или сделать простую страницу на тильде, но обращаемся в издательский дом, если хотим опубликовать книгу, или нанимаем команду, чтобы запустить большой маркетплейс.
—
Ну и наконец, если в каком-то будущем мы сможем делать крутые программные продукты «совсем без программистов» — то:
1. долгосрочно, у нас будут гораздо большие проблемы, потому что перестроится вообще весь рынок интеллектуального (а с развитием физических роботов — вообще всего) труда, мир изменится;
2. краткосрочно, мы сами сможем гораздо смелее тестировать свои продуктовые гипотезы для своих продуктов (а мы хотим развиваться именно в сторону продуктовой разработки).
—
То есть я настроен оптимистично, но то, что два этих события произошли почти одновременно, не идёт у меня из головы. Кажется, что мы незаметно преодолели очередной барьер развития ИИ.
Ну и чтобы очистить нёбо после последнего поста: чувак записал 176 килобайт информации в … птичью трель! Вам потребуется обычный советский на самом деле нужен хороший микрофон. ВИДЕО
Это BennJordan">классный ютубер Бен Джордан, который сначала работал музыкантом, а потом увлекся экономикой и инженерией и обо всём этом дико интересно рассказывает. Например: как текущая экономическая ситуация всё больше напоминает феодализм или как он построил и тестировал звуковую пушку, которая мешает говорить или как он выяснил, что треть всех политических аккаунтов в твиттере — боты.
Новое мобильное приложение Tea (чай) обогнало по популярности в апсторе ChatGPT. Это анонимная социальная сеть для женщин, чтобы сплетничать о бывших, выдавая им красные и зеленые флаги, и пробивать мужиков по разным базам.
Интересно, что если попросить chatGPT сделать ровно такое же приложение для мужчин, то нейросеть откажется, потому что это харрасмент, диффимация и дискриминация. А если для женщин — то powerful and sensitive idea.
Интересно, что было бы с подобным приложением в России. С одной стороны, баз для пробива даже больше, с другой стороны — новые законы о защите персональных данных довольно жесткие и настрой, кажется, совсем другой.
А вот antirez, супер успешный программист, работающий над по-настоящему сложными задачами, создатель redis, одной из самых популярных баз данных на свете, делится, как он использует ИИ для программирования.
Вкратце: даёт подробный контекст и пишет детальную спецификацию, не вайбкодит и даже не пользуется специальными редакторами (агентами), а буквально копи-пестит код; рекомендует модели Gemini 2.5 PRO и Claude Opus.
Говорит, что нейросети радикально ускоряют его работу. Внутри у него еще пара советов, рекомендую прочитать первоисточник, там коротко и по делу.
Люди заводят отношения даже с chatGPT.
Нейросети, которые специально заточены играть роль романтического (или даже сексуального) партнера — прямо отдельный жанр и даже огромный рынок, но ни в коем случае не мейнстрим.
Тем безумнее то, что Маск выкатил в мобильном приложении своей нейросети Grok самую натуральную вайфу.
Как в анекдоте: а что, так можно было?
Ну и классное рассуждение по мотивам исследования: автор цитирует классика Питера Науэра (того самого, который N в BNF), который говорил, что программирование — это создание ментальной модели задачи, предметной области, в которой мы работаем.
Опытные программисты, годами работающие над проектом, конечно же, имеют эту модель в подкорке, и их софт ей соответствует. У нейросети этой модели нет, поэтому она скорее мешает, чем помогает.
Дальше автор делает печальное наблюдение, что большинство программистов работают с плохим кодом, который увидели вчера. Мол, в таких ситуациях нейросети будут полезны.
—
Удивительно, как теория переплетается с практикой.
Совсем недавно сделали проект, в котором нас позвали «привести в порядок успешный стартап». Чуваки собрали MVP, но страдают от низкой скорости добавления фичей. Раньше я говорил, что это из-за «высокой внутренней сложности кода».
Более точная формулировка: в числе прочего, мы придумали, как привести их код в соответствие с предметной областью. Для этого мы нарисовали схему их предметной области, выделили контексты и домены, а потом придумали разделение ответственности по задачам между сервисами.
Красиво!
Очень классное исследование эффективности нейросетей для программирования.
16 опытных опенсорс программистов попросили решать реальные задачи в их проектах с использованием или без использования ИИ и сравнили их производительность.
Программисты предсказывали, что использование ИИ ускорит их на 24%. В реальности, с применением нейросетей испытуемые закрывали задачи в среднем на 20% дольше. Самое поразительное — даже после эксперимента им казалось, что благодаря нейросетям они ускорились на 20%!
Исследование отдельно хорошо тем, что явно описывает, что они не утверждают (и дают пояснения почему): «ИИ бесполезен для всех программистов» (они проверяли супер опытных чуваков на сложных репозиториях, которые те знают как свои 5 пальцев), «ИИ никогда не будет полезен в этих задачах» (инструменты развиваются очень быстро) и т. д.
Интересно, что думает про этот пост один из лучших программистов и техдиров, которых я знаю, Егор Хмелев.
Форвардну его сообщение ниже целиком.
Наш любимый DHH (Дэвид Хейнемейер Хэнсон, создатель популярного фреймворка Ruby on Rails, со-владелец системы управления проектами Basecamp, отличный программист и автогонщик) сделал свою сборку Linux для программистов, omakub.
Обычно таким грешат подростки, но DHH создал практичный и интересный сетап для программистов, которые любят macOS и не прочь познакомиться с Linux, но не хотят сами разбираться с вопросами вроде рендеринга шрифтов и настраивать десятки стандартных программ.
Система ориентирована на управление с клавиатуры, без мыши. Там даже tiling window manager! Если никогда не слышали о таком — стоит хотя бы раз попробовать, это совсем другой способ управлять окнами, чем привычно таскать их мышкой.
Ставите свежий Ubuntu, запускаете одну команду и через пару десятков минут можно пробовать. Пока устанавливается — смотрите видео, где DHH за 25 минут делает обзор системы и как ею стоит пользоваться.
Многие мои друзья-технари в полном восторге. Отличное развлечение на выходные!
Omakub — от японского omakase, когда оставляешь выбор блюд в ресторане на усмотрение шефа.
https://omakub.org
Вчера разбирали кейсы про разработку с продактами в школе wannabe и я понял, что это одна из вещей, которую я люблю больше всего: помогать продактам (дизайнерам, владельцам бизнеса) выстраивать отношения с разработкой, отвечать на вопросы продактов про разработку.
Если вы продакт, дизайнер или основатель бизнеса и у вас есть вопросы про разработку или трудности с разработкой — пишите, буду рад помочь! @samatg
Как перезапустить проект технически?
Прямо сейчас мы решаем эту задачу для стартапа. Ребята делают платформу для ученых, чтобы проводить исследования на больших группах респондентов. Куча интеграций, огромный зоопарк форматов данных.
Они пользуются уже третьей версией своей платформы. Фронтенд на low-code платформе Bubble, бэкенд частично на flask и частично n8n. Всё работает, приносит пользу, проект поднял больше миллиона долларов инвестиций.
Как навести порядок, радикально увеличить скорость доставки фич и гарантировать масштабируемость?
Первый порыв любого программиста — переписать всё с нуля. Благо, проект ещё не очень большой, за месяца 3–4 парой программистов, наверное, можно управиться. Составить список фичей, написать их заново, потушить сервис на пару часов, импортировать данные из старой системы в новую и запуститься.
Но это — ошибка. Во-первых, мы не понимаем истинного объема бизнес-логики, который успел накопиться в коде. Скорее всего, сам клиент её недооценивает. Во-вторых, пока будем переписывать — проект продолжит развиваться. Придется догонять. В-третьих, любой, кто делал импорт данных, скажет вам, что это задача из ада, и чем старее данные — тем сложнее их вытащить. Настроить тестирование этого нового проекта будет сложно, да и полноценным оно не может быть по определению.
В результате, в момент включения новой платформы в продакшен, точно возникнут проблемы, которые придется героически исправлять «прямо сейчас», в стрессе. Мало предсказуемости, о реальном объеме работы мы узнаем только в самом конце проекта, при попытке переключения. Мы такое не любим.
Правильный ход — это strangler fig pattern. Пишем небольшую обертку для старого бэкенда. Этот новый бэкенд действует как прокси — передает запросы к старому бэкенду, запоминая сами запросы и ответы. Дальше выделяем первые эндпоинты бэкенда, которые мы можем запрограммировать заново, красиво. Дублируем эти запросы пользователей в старый и новые движки. Сравниваем ответы нового движка с ответами старого, исправляем ошибки. Накапливаем информацию в новую, аккуратно составленную базу данных. И только после продолжительного тестирования на живых данных начинаем отдавать пользователю ответы нового бэкенда. Берем следующую пачку эндпоинтов и повторяем процесс.
Получается, у нас нет момента «большого рубильника», который переключит весь трафик со старого движка на новый, мы «едим этого слона по частям». Переход со старого бэкенда на новый происходит плавно, незаметно для бизнеса. Ошибки в новой системе видны только программистам и не затрагивают клиентов.
Не менее важна предсказуемость. В первом подходе мы весь проект живем под дамокловым мечом — какие сюрпризы нас ждут при запуске? Во втором подходе мы размазываем эту неопределенность по всей продолжительности проекта, так что уже через пару недель можно увидеть реальную скорость разработки, включая исправление ошибок, и оценить общий объем работы и сроки.
Наконец, этот подход позволяет выкатывать новые фичи в продукте внутри нового бэкенда до окончания переезда, параллельно с рефакторингом.
К сожалению, кажется, что каждый молодой программист обречен пытаться всё переписать правильно с нуля. Технарь, предлагающий strangler fig pattern, не лучше, просто за его обучение уже заплатил другой заказчик.
На фотографии тот самый фикус-душитель опутывает дерево, как новый бэкенд опутывает старый.
Только что опубликовали новое мобильное приложение в AppStore. Сделали его на кросс-платформенной технологии CapacitorJS силами наших веб-разработчиков, так что не потребовалась отдельная команда мобильной разработки, сэкономили месяцы и миллионы рублей.
Два месяца переписывались с Apple по поводу in-app purchases и прочих коммерческих моментов. В результате всё решилось одним коротким звонком с Купертино. По телефону нам на хорошем русском объяснили, что «правила AppStore — это направляющие принципы, каждую ситуацию не распишешь формально, конкретно вам нужно сделать 1, 2, 3». Не стесняйтесь пользоваться опцией заказа звонка!
Интересно, что ни единого вопроса про Capacitor у Apple не было, хотя некоторые люди нас очень пугали, что любые веб-технологии — это сразу бан. Правда, наши фронтендеры собрали полноценное мобильное приложение — с оффлайном, входом через Apple ID и прочим, чего у сайтов обычно нет.
Раньше я был скептически настроен к кросс-платформенной мобильной разработке, но для не супер сложных приложений веб, кажется, победил.
Такой кайф, когда единая команда отвечает за продукт на всех платформах! Нет этого: «веб уже запрогал, андроид сделал не совсем как нужно, но сойдёт, а iOS-команда пока занята, ждём...»
Ура!
Если вы думаете о выпуске мобильного приложения — рекомендую присмотреться к Capacitor — классная технология. Подробный технический рассказ — примерно через месяц: клиент хочет сделать анонс, когда приложение немного обкатается.
Приложение для прохождения (читай обмана) собеседований cluely подняло 15 млн долларов у самого крупного инвестфонда долины Андерсен-Хоровитц (a16z).
Это довольно безумная история. Рой Ли учился в колумбийском университете и создал программу, которая помогает проходить технические собеседования на работу программистом. На этих собеседованиях обычно дают текст задачи, и нужно прямо на месте запрограммировать решение, по пути объясняя свой ход мысли и отвечая на сопутствующие вопросы. Программа позволяет удобно скопировать текст задачи, показывает специальное прозрачное окно, в котором прямо отдельно «вот это пиши, вот это говори».
Эта программа — удобная обертка под публичные нейросети и набор действенных промптов.
С помощью этой программы, он успешно проходит собеседования на стажировки в Амазон, Фейсбук и в ТикТок! Записывает процесс на видео и выкладывает видео на ютубе! Собирает тонну лайков в своем набирающем популярность твиттере. Программа разлетается как горячие пирожки. Рой пишет, что по его оценкам, около 10% всех стажеров в гугле пользовались его программой! И предлагает гуглу купить её за 100 млн долларов :)
☞ Чтобы вы понимали, технические собеседования для устройства в ведущие технологические компании — это отдельный вид спорта. Люди тратят месяцы на подготовку к интервью, решают тысячи задач на специальных платформах, есть целая индустрия подготовки. Эти собеседования плохо оценивают умения и даже навыки для того, чтобы быть хорошим программистом. Но они безусловно позволяют крупным корпорациям выбрать супер умных и/или супер усидчивых.
Работодателям поведение Роя сильно не нравится. Амазон вдобавок к отзыву предложения о стажировке пишет в деканат донос: мол, ваш студент нарушает этический кодекс университета. Деканат проводит дисциплинарные слушания в зуме, и наша звезда, конечно же, записывает и выкладывает их у себя в твиттере. В этот момент историю подхватывают медиа. Заголовки жгучие: «Амазон любит ИИ, но не когда его используют соискатели на собеседованиях».
Деканат добавляет в список грехов «разглашение конфиденциальных материалов» и требует прийти на слушания лично, на что Рой отвечает твитом с селфи в только что вышедших умных очках Meta RayBan и припиской «вот в них я пойду на слушание, но записывать ничего, конечно, не буду». Тут уж деканат совсем срывает с катушек, слушания проводят без него и в конце концов Роя исключают.
Помню, многие тогда писали «парень сломал себе жизнь ради лайков в соцсетях».
Слоган его компании, оцененной в 120 млн долларов — «cheat on everything» — «обманывай во всем». Рекламный ролик — парень пользуется ИИ через виртуальные очки, чтобы врать на свидании. Самоирония?
Основатели сравнивают свой продукт с Гуглом, калькулятором и проверкой орфографии — мол, бороться с ними — то же, что и бороться с прогрессом.
—
Эта технология будет полезна для обхода любых формальных проверок. С одной стороны, я не питаю иллюзий, что крупные компании откажутся от этих формальных проверок. Уже слышно, что компании всё чаще зовут кандидатов на личные встречи вместо созвонов онлайн. Не удивлюсь, если появятся технологические «античиты».
Интересно, что эти технологии не помогут на собеседованиях на работу к нам. Мы не просим запрограммировать стандартную задачу, а говорим о личном опыте человека. Для этого не обязательно помнить деталей библиотек или названий функций. Важно понимать суть происходящего (ну или хотя бы показывать заинтересованность в ней), демонстрировать, что умеешь видеть за техническими особенностями бизнес-цель и думаешь о том, как принести реальную пользу, а не просто «закрыть задачу».
Другой способ устроиться к нам — решить реальную бизнес-задачу в коде. Они, к сожалению, ИИ пока не по силам.
Вся эта ситуация подчеркивает — реальный мир на порядок богаче, сложнее и интереснее, чем любой экзамен. Если (когда) нейросети научатся решать реальные задачи, а не экзаменационные — вот тогда нам будет чего опасаться. С другой стороны, это будет совсем другая реальность и отбор хороших программистов вряд ли будет тогда насущным вопросом.