Новое

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

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

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

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

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

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

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

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

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

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

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

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

пост №1858Бизнес и стартапы

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

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

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

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

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

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

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

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

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

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

пост №1857Разработка и инженерия

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

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

Что же было?

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

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

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

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

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

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

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

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

пост №1856Личное

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

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

пост №1855Технологии и общество

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

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

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

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

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

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

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

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

пост №1854Интернет и платформы

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

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

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

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

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

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

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

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

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

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

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

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

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

пост №1853Разработка и инженерия

На прошлой неделе умер Билл Аткинсон, один из ключевых программистов ранней Apple, создатель HyperCard.

Тот самый чувак, который запрограммировал возможность окон у макинтошей перекрывать друг друга, потому что ему показалось, что он видел такую возможность во время встречи в Xerox PARC. Инженеры Xerox признались потом, что им и в голову не пришло такое программировать: слишком сложно!

Ещё он разработал алгоритм дизеринга Аткинсона, чтобы рисовать картинки на черно-белых экранах маков того времени.

HyperCard позволял создать программу абсолютно любому человеку. Это было похоже на создание презентаций в PowerPoint: сначала ты накидываешь визуальные элементы на карточки, экраны приложения. Дальше, с помощью языка программирования, похожего на обычный английский язык, задаёшь логику действий. Программы создавали люди, далёкие от программирования.

Это был один из первых в мире инструментов визуальной, low code разработки. Создатель веба Тим Бернс Ли говорил, что вдохновлялся ссылками в нем.

Меня же занимает вот какой аспект HyperCard: в нём не было специального режима редактирования программ. Любой пользователь мог одним нажатием мыши стать разработчиком и создателем. Любой мог посмотреть, что находится под капотом, и внести изменения в ту программу, которой пользовался.

Сегодня мы пользуемся программами, которыми даже не владеем, мы платим за подписку и можем потерять доступ к привычной функциональности из-за санкций, закрытия компании или просто из-за того, что у разработчика теперь другие приоритеты (Google Reader?).

Ситуация, в которой ты можешь внести изменения в программу, которой пользуешься, — прямая противоположность.

Сейчас возможность редактировать свои инструменты есть только у программистов и у бизнеса. Интересно, что моя основная работа именно в этом: мы делаем инструменты для бизнеса, типа вот этой системы для логистов и вносим в них изменения, когда нас об этом просят.

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

Есть целые экосистемы, построенные на идее расширяемых и редактируемых программ, обычно на основе Lisp-подобных, «интерактивных» языков.

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

Это, кстати, одно из обещаний энтузиастов ИИ: что, мол, с развитием средств автоматизированного программирования мы перестанем платить за программное обеспечение. Каждый будет создавать его под себя с использованием искусственного интеллекта. Я в этом мало верю. Хотя, было бы очень интересно.

Ну а пока, если хотите сделать классный софт под себя, — нанимайте нас! ;)

Дополнительные материалы:

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

пост №1852Разработка и инженерия

Гугл опубликовал пост-мортем по позавчерашнему падению. Обычные ошибки, только на инфраструктуре планетарного масштаба.

У них есть внутренний сервис, который проверяет доступы (бабки, квоты и т. д.) перед тем, как API запрос доходит до любого продукта.

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

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

Экземпляр этой программы работает в каждом регионе Гугла. Так как это серьезный, ключевой сервис, его выкатывают не во все регионы сразу, а по одному, внимательно отслеживая, не внесли ли программисты новые ошибки.

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

К сожалению, программист забыл настроить фича-флаги для этого кода. Кусочек программы с ошибкой запустился на всех пользователей сразу. Удивительно, что это не заметили на этапе code review!

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

Тут в дело вступает, на мой взгляд, первая ошибка (а не просто человеческая небрежность) инженеров — система контроля доступа настроена так, что при отсутствии ответа от программы проверок она отклоняет запрос. Так называемый fail closed. Хорошо для замков на банковских сейфах, плохо для пожарных выходов.
В нашем случае система не пропускает ни один запрос.

Дежурные инженеры замечают проблему в течение 2 минут, за 10 минут находят причину (дежурная система и дежурные инженеры у Гугла достойны восхищения) и нажимают большую красную кнопку, которая должна выключить эту часть программы (ее программисты сделали). Ее включение занимает еще 30 минут. (Не понятно, почему этот механизм занимает 30 минут, а не 20 миллисекунд, но движемся дальше).

Система заработала, но из-за того, что она лежала 40 минут, накопилось много желающих отправить запрос еще раз, и они создали эффект толпы, которая набежала и перегрузила остальные соседние сервисы через наш сервис проверок. Оказалось, что он не ждет какое-то время, если нужный сервис отказывается ответить на запрос (для этого есть красивая схема exponential back off), а долбит до упаду, тем самым не давая системе возможности восстановиться. Пришлось руками ограничивать число запросов. На постепенную, ручную разгрузку очередей ушло еще 2 часа.

Ко всему прочему, Гугл час не мог опубликовать уведомление о проблеме, потому что сервис публикации статус-страниц зависит от системы, которая упала.

Как вывод, Гугл обещает пройтись по всем сервисам и убедиться, что они, во-первых, fail open, то есть пропускают запросы, когда падают, во-вторых, реализуют exponential back off, если на их запрос не отвечают, а не добивают лежачего, и, наконец, в-третьих, что даже глобальные добавления правил должны прилетать во все регионы не сразу, а с некоторыми задержками. Ещё обещают добавить эти проверки в свои статические анализаторы кода, завидую!

Первые два пункта можно и нужно использовать в каждом проекте, даже если ты не Гугл.

пост №1851Разработка и инженерия

В контексте падения облаков, чем они лучше/хуже собственного железа?

Можно подумать, что я буду сейчас писать про отказоустойчивость. На самом деле, если ваш проект будет лежать, когда лежит весь GCP или AWS, — то для 99% проектов это абсолютно нормально, такие события происходят раз в несколько лет и длятся не больше пары часов. Мы ведь не кислородными масками управляем, верно?

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

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

Главное преимущество облаков в сравнении с «реальными серверами» — возможность быстро масштабироваться, то есть сегодня у тебя один сервер обрабатывает 1000 пользователей, завтра проект завирусился на миллионы, и ты за пару минут запускаешь десятки, сотни серверов.

Минусы? За это удобство и возможность мгновенного масштабирования нужно платить, порой в десятки и сотни раз больше, чем за просто арендованные и уж тем более купленные серверы.

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

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

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

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

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

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

Пример: классно наблюдать, как последние 3 года создатель важного фреймворка Ruby on Rails и культовой системы управления проектами Basecamp Дэвид Хейнемейер Ханссон (DHH) планомерно перевозит свои продукты с миллионами пользователей из облаков на собственные серверы.

Они объявили о планах выхода из Амазоновского облака AWS ещё в октябре 2022. На тот момент, они платили за Амазону 1,5 млн долларов в год! Для начала, они купили себе физических серверов на полмиллиона долларов (всего треть годового чека за облака!)

В июне 2023 объявили об успешном перевозе всех вычислений, а недавно купили специализированное железо для хранения данных и мае наконец перевезли хранилище файлов из AWS S3.

Другой яркий пример, с которым я сталкивался лично, — это стоимость трафика для медиа-проектов. Трафик в облаках для популярного медиа может стоить десятки тысяч долларов, и такой же объем можно обработать десятком арендованных серверов по 40 баксов каждый. Экономия в 100 раз. Но это всё имеет смысл только на масштабе. Так выпьем же за то, чтобы было на чем экономить!

пост №1850Разработка и инженерия

В 21:46 мск отказала большая часть гугловского облака GCP. Ходят слухи, что всё из-за одного ключевого технического внутреннего сервиса, но в результате в разной степени поломались гугловские продукты, вроде Cloud, Drive, Meet, Gmail.

Предположительно, из-за этого начал глючить Cloudflare, один из самых популярных CDN-провайдеров.

Дальше по цепочке легла половина интернета — Spotify, Discord, Snapchat и тысячи других. Особенно тревожно, что для многих людей сломался RCS — это протокол, продвигаемый Гуглом, который должен заменить смски.

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

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

P. S. Про одновременное падение Amazon Web Services — кажется дезинформация.