Новое

страница 20 из 170

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

И нейросети, используемые бездумно, без должного профессионального надзора, не уменьшают нагрузку, а просто переносят её.

Другой автор отлично раскрывает эту идею, он пишет: «если раньше по коду новичка я мог догадаться, что он понимает, а что нет, мы могли обсуждать его решение, и моя обратная связь была обучающей, то теперь мне приносят код, сгенерированный нейросетями, который выглядит хорошо, но сломан странным образом, и, когда я указываю на ошибку, мне приносят абсолютно новый код (примерно как LLM)».

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

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

Удивительным образом, я тоже с этим сталкиваюсь, но с заказчиками.

Раньше новые клиенты крайне редко приносили написанный текст, чаще просили: «давай созвонимся, обсудим задачу». А если уж присылали текст — то я по нему мог очень многое угадать про уровень проработанности задачи, особенности заказчика, а порой и про саму задачу. Теперь мне часто присылают развернутые «технические задания», сгенерированные нейросетью.

Они выглядят красиво, но, когда я их читаю и пытаюсь собрать в голове видение проекта и заказчика, то у меня не складывается картинка. А ещё голова начинает болеть от напряжения. Тут я бросаю текст и прошу созвониться-обсудить.

Лично я всегда предпочту одну строчку, написанную человеком, 10 строчкам, написанным роботами. Потому что в случае робо-текста приходится угадывать, какие из добавленных роботом строк по удачному совпадению отражают реальность, а какие — просто то, как, по мнению нейросети, обычно бывает в мире.

И нет, вариант «попроси нейросеть сжать длинный текст до одной строки» не работает, информация теряется безвозвратно.

Со страхом жду дня, когда люди перестанут сами ходить на встречи и будут присылать роботов (аватаров), которые будут говорить пустое. Технически это возможно уже сейчас; до массовой доступности, я думаю, год-два от силы 🙈

Как перезапустить проект технически?

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

Они пользуются уже третьей версией своей платформы. Фронтенд на 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 — классная технология. Подробный технический рассказ — примерно через месяц: клиент хочет сделать анонс, когда приложение немного обкатается.

Interview Coder безусловно помогает пройти формальное собеседование. С одной стороны, я не питаю иллюзий, что крупные компании откажутся от этих формальных проверок. Уже слышно, что компании всё чаще зовут кандидатов на личные встречи вместо созвонов онлайн. Не удивлюсь, если появятся технологические «античиты».

Интересно, что эта программа мало поможет при устройстве на работу к нам в компанию.

Обычно мы просим в свободном режиме, за пару дней решить реальную бизнес-задачу в коде. Пользуйся чем хочешь. Главное — чтобы был результат, прямо как на настоящей работе.

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

Тут современный ИИ может даже помешать.

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

Но вернемся к Рою, которого уволили из университета.

Через месяц, Рой с другом основывают компанию Cluely. Этот сервис — уже не просто способ обмануть собеседования, но общий инструмент для удобного и незаметного использования ИИ. Слоган компании, оцененной в 120 млн долларов — «cheat on everything» — «жульничай во всем / списывай везде». Рекламный ролик — парень пользуется ИИ через виртуальные очки, чтобы врать на свидании. Самоирония?

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

Стала ли наша память слабее от того, что мы не запоминаем десятков номеров телефонов, как раньше? Хуже ли мы ориентируемся в городе с появлением навигаторов? Становятся ли наши ноги и тело слабее от того, что мы ездим на машинах? Стоит ли отказываться от смартфонов, навигаторов, автомобилей? Стали ли мы хуже разбираться в мире с появлением гугла и тем, как он заменил библиотеки? К чему в этой цепочке примеров ближе ИИ?

Ещё одна аналогия, которая приходит в голову — это как если бы я поехал марафон на велосипеде. Буду ли я быстрее любого человека? Имеет ли это смысл? А что, если на работу доставщиком пиццы будут брать только победителей марафона?

ИИ заставляет заново задуматься о том, что значит быть человеком и зачем мы делаем те или иные, очень привычные вещи. Думаю, что дальше таких вопросов будет всё больше.

Приложение для удобного и незаметного использования ИИ cluely подняло 15 млн долларов у самого крупного инвестфонда долины Андерсен-Хоровитц (a16z).

Казалось бы, рядовая новость.

На самом деле это довольно безумная история. Рой Ли учился в колумбийском университете и создал программу Interview Coder, которая помогает проходить (обманывать) технические собеседования на работу программистом.

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

С помощью этого инструмента, Рой успешно проходит собеседования на стажировки в Амазон, Фейсбук и в ТикТок! Он записывает процесс на видео и выкладывает его на ютубе! Собирает тонну лайков в своем набирающем популярность твиттере. Программа разлетается как горячие пирожки. Рой пишет, что по его оценкам, около 10% всех стажеров в гугле пользовались его программой! И предлагает гуглу купить её за 100 млн долларов :)

☞ Чтобы вы понимали, технические собеседования для устройства в ведущие технологические компании — это отдельный вид спорта. Люди тратят месяцы на подготовку к интервью, решают тысячи задач на специальных платформах, есть целая индустрия подготовки. Эти собеседования плохо оценивают умения и даже навыки для того, чтобы быть хорошим программистом. Но они безусловно позволяют крупным корпорациям выбрать супер умных и/или супер усидчивых.

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

Работодателям поведение Роя сильно не нравится. Амазон вдобавок к отзыву предложения о стажировке пишет в деканат донос: мол, ваш студент нарушает этический кодекс университета. Деканат проводит дисциплинарные слушания в зуме, и наша звезда, конечно же, записывает и выкладывает их у себя в твиттере. В этот момент историю подхватывают медиа. Заголовки жгучие: «Амазон любит ИИ, но не когда его используют соискатели на собеседованиях».

Деканат добавляет в список грехов «разглашение конфиденциальных материалов» и требует прийти на слушания лично, на что Рой отвечает твитом с селфи в только что вышедших умных очках Meta RayBan и припиской «вот в них я пойду на слушание, но записывать ничего, конечно, не буду». Тут уж деканат совсем срывает с катушек, слушания проводят без него и в конце концов Роя исключают.

Помню, многие тогда писали: «парень сломал себе жизнь ради лайков в соцсетях».

По интернету гуляет история про 16 миллиардов утёкших паролей. В заголовке фигурируют Facebook, Google, Apple.

Во-первых, повода для паники нет. Никакой «исторической» утечки баз данных паролей крупнейших сервисов не было. Ваш аккаунт на Фейсбуке, Гугле или Эппл-аккаунт вряд ли в большей опасности, чем неделю или месяц назад. Все стандартные правила цифровой гигиены, а именно — настроить второй фактор и не использовать один и тот же пароль на разных сервисах, никто не отменял.

Что же было?

Люди часто по незнанию устанавливают себе зловредные программы на андроид-телефоны и на виндоуз-компьютеры. Эти программы (малвари) крадут логины-пароли, которые мы вводим в разные сервисы, и отправляют их мошенникам. Мошенники собирают огромные базы пользователей и паролей. Дальше эти базы передаются или продаются другим мошенникам, которые пытаются заработать денег путём обмана, шантажа и прочего.

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

Сама эта новость — странная. Первоисточник — вот эта статья на малоизвестном «новостном» сайте. Выглядит этот сайт как классический SEO-PR проект. Автор — литовец, якобы замглавреда, с 21 твитом и с довольно чистым Линкедином. В общем, я пока не уверен, что за этим проектом не стоит один опытный SEO-шник.

Дальше это выкладывается на Forbes.com под страшным заголовком «16 миллиардов паролей Apple, Facebook и Google утекли — успей поменять пароль сейчас!». Чтобы вы понимали, это не журналист Форбса написал, а «колонка», то есть блогер, который публикует там примерно что захочет. Через Форбс обычно «прокачивают» SEO-трафик и делают статьи для виз талантов за деньги, но это отдельная история.

Единственный, кто выглядит как живой человек во всей этой истории, — это украинский безопасник Владимир Дьяченко, который в своём Линкедин-посте утверждает, что «всё в этой статье прошло через его руки».

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

Из приятного — 15 минут назад главный исследователь утечек Трой Хант затвитил, что посмотрит, про что весь шум-гам. Моя ставка: всё это — прекрасная виральная кампания по сбору трафика на ИИ-сгенерированный «новостной сайт». А может, даже пиар того самого безопасника Владимира. Надеюсь, хоть он существует на самом деле.

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

25 июня – 4 июля буду в Нью-Йорке. Повидать клиентов нашего аутсорса, найти новых. Встретиться с друзьями и знакомыми! Может быть, даже устроим встречу слушателей подкаста, подписчиков канала и участников чата :)

Буду рад встретиться! Пишите в личку @samatg

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

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

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

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

Это печально, потому что для совсем небольших проектов, для бесплатной защиты от DDoS и AI-скрепинга, Cloudflare не имеет альтернатив.

К тому же Cloudflare даёт очень классно управлять кешированием — благодаря этому даже слабенькие новостные сайты могут бесплатно выдерживать огромную нагрузку и открываться мгновенно.

Из платного в России есть DDoS Guard, от 8000 рублей в месяц, и Curator, от 23 тысяч рублей в месяц. К сожалению, уровень развития API, объём и качество дополнительных сервисов, типа хитрого кеширования, CDN и облачных функций, — несравнимые. Надеюсь, они будут развиваться, и в какой-то момент компании предложат бесплатные услуги для небольших проектов и медиа.

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

В вацапе появится реклама в статусах и в списках каналов.

Основатели вацапа в 2009 году обещали сделать мессенджер «Без рекламы! Без обмана и игр! Без уловок!».

Один из основателей говорил публично: «когда в дело вступает реклама, пользователи становятся товаром». Они зарабатывали на платной подписке — 1 доллар в год после первого бесплатного года.

В 2014 году основатели продали вацап фейсбуку за 19 миллиардов долларов. На тот момент в компании работали 55 человек на 450 миллионов пользователей. Это супер классная инженерия и умение фокусироваться на одной главной функции, не распылясь.

Марк Цукерберг обещал тогда, что в ближайшие годы не будет думать о монетизации, но когда до этого дойдет дело — это будет не рекламная модель.

В 2018 году оба основателя вацапа покинули компанию, отказавшись от части денег. Ходили слухи, что это из-за их несогласия с тем, как много информации ФБ собирает о своих пользователях (то были времена скандала Кэмбридж Аналитики) и от усталости от попыток отбиться от рекламы.

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

Сегодня вацапом пользуются 3 миллиарда людей в месяц, каждый третий человек на земле! Для сравнения, у телеграма миллиард активных пользователей.

Удивительно, что вацап при этом шифрует всю личную переписку e2e шифрованием — то есть вацап не может прочитать нашу переписку, в отличие от телеграма. Под капотом вацап использует тот же протокол шифрования, что и супер защищенный Signal.

На самом деле поразительно, как долго держалась старая культура микро-команды вацапа внутри корпоративного бегемота фейсбука — больше 10 лет!

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

Если бы они не драли эти безумные деньги за смски (они в пересчёте на байт информации были дороже, чем передача данных на Луну), если бы чуть-чуть вкладывались в улучшение сервиса, — вся история коммуникаций могла бы сложиться совсем иначе.

Вот где настоящая корпоративная трагедия.