Разработка и инженерия

страница 2 из 44
пост №2030Разработка и инженерия

Умер создатель quicksort’а Хоар.

Говорят, когда Дейкстра был при смерти, его спросили, что делать с архивом переписки, на что профессор ответил «оставьте письма Тони, остальное можно сжечь».

Хоар создал язык CSP (communicating sequential processes), с помощью которого до сих пор описывают параллельные процессы; Erlang, Elixir (и каналы в Go) — внуки его идей. Он выбрал кучу ключевых слов (case, new, null), которыми мы пользуемся каждый день.

А еще он был учеником Колмогорова! В Оксфорде учил греческий, латынь и философию, во флоте выучил русский и приехал по обмену в МГУ заниматься теорией вероятности и машинным переводом. Quicksort он придумал как раз для поиска слов в словаре.

Вот цитата из его лекции при получении премии Тьюринга (компьютерная Нобелевка).

Есть два способа писать программы: один — сделать программу такой простой, чтобы было очевидно, что в ней нет ошибок. Другой — сделать ее такой сложной, что в ней нет очевидных ошибок. Первый способ гораздо сложнее. Он требует того же умения, рвения, проницательности и даже вдохновения, как открытие простого закона физики, который лежит в основе сложных феноменов природы. [И никакой комитет не сделает нужных компромиссов в разумное время, хорошие программы создают одиночки и слаженные группы]

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

Публичные API ключи гугла, те, которые разработчики используют для вставки Google Maps карт себе на сайт, могут использоваться для доступа к перепискам с Gemini (ИИ от гугла) и скачивания загруженных туда файлов; а ещё с помощью этих же ключей можно пользоваться ИИ Gemini от имени создателя сайта (и гугл потом выставит им круглый счет за это).

Разработчики сообщают о счетах на десятки тысяч долларов.

Исследователи нашли уязвимость с ноябре 25го и гугл уже почистил большинство ключей, но если вы настраивали гугл-карты у себя на сайте или пользуетесь Firebase и включили на этом же GCP проекте Gemini API — стоит его выключить и перенести в отдельный проект.

🤯

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

Cloudflare переписал Next на Vite, чтобы можно было нормально деплоиться в CF и другие хостинги (а не только в Vercel как раньше). Назвали vinext.

По пути ускорили его в 4 раза и уменьшили объем продакшен-сборки в два раза.

Ах да, сделал это всё один инженер за неделю с помощью нейросетей. Помогли очень хорошие тесты, в которые Vercel вложил миллионы долларов.

Несмотря на продакшен-пользователей (cio.gov), это экспериментальный софт. Главное: не понятно, что будет дальше с поддержкой и развитием. Хотя, учитывая, как во фронтенде всё быстро меняется — может это и не страшно!

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

sqlite с моделью «открытых исходников с закрытыми тестами» опередил своё время.

Друзья, завтра выступаю на конференции AI hard fork! Она уже вовсю идет, спешите успеть на классных докладчиков!

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

Ну и две жуткие (или прекрасные?) в сочетании друг-с-другом новости из мира кибербезопасности.

Первая: свежая модель Claude 4.6 нашла сотни уязвимостей в популярном open source софте.

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

Вторая новость: в программе блокнот (Notepad.exe) из Windows 11 обнаружили уязвимость, которая позволяет реализовать удаленное исполнение кода. Достаточно кликнуть на ссылку в Markdown’е.

Вайб-кодинг и автоматизированный поиск уязвимостей — созданы друг для друга.

Я уверен, что все ведущие государства (и криминалы пошустрее) уже запустили лучшие модели на самых больших кластерах для непрерывного поиска зеродеев. Есть небольшая надежда, что и создатели софта смогут находить уязвимости лучше, чем сейчас. Интересно, кто победит?

Из «старых добрых» атак: китайцы 4 месяца владели инфраструктурой обновления редактора Notepad++ (взломали сервер хостинг-провайдера, где хостились обновления) и изобретательно взломали около дюжины жертв. А это, между прочим, популярный редактор среди разработчиков, так что совершенно не ясно, какие у этой акции конечные цели и последствия. Это к вопросу об игре в долгую и о supply chain attacks. Не только израильтяне так умеют.

Кстати, я пересел с Grok и ChatGPT на Claude. Звучит человечнее и чуть поумнее, рекомендую.

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

Помните, мы перезапустили Синхронизацию за 3 месяца вместо года?

Так вот: после этого, мы ещё за месяц работы, силами одного программиста (!) запустили им мобильное приложение!

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

Разработчик приложения и автор статьи — Эдуард Аксамитов.

Иллюстрация: «Круги Ада» Боттичелли, Библиотека Ватикана

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

Ядро чатжпт работает на одном Postgres-сервере с 50 read-only репликами. Это к вопросу о масштабируемости и потребности в сложной инфраструктуре.

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

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

У postgres открытая, по-настоящему распределенная разработка, в которой участвуют сотни инженеров со всего мира.

Многие ИТ-проекты держатся на власти диктатора (Линукс на Линусе), а Postgres вот уже 30 лет управляется меритократией в консенсусной модели.

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

Отличная обратная совместимость и близкое соответствие стандартам, и при этом они умудряются первыми реализовывать фичи, которые только позже появляются в платных БД.

PostgreSQL как программа — это настоящее произведение инженерного искусства, а проект в целом — чудо в плане самоорганизации людей. Горжусь, что у нас как у человечества получилось сделать такую красивую штуку.

Я рад, что Postgres постепенно становится самой популярной базой для начинающих, заменяя MySQL.

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

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

Федя перепишет моего бота секретаря с помощью вайб кодинга в прямом эфире!

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

Проблема в том, что он съедает 100€ в месяц.

А ещё он не умеет распознавать, голосовые длиннее 20 минут (многие журналисты хотели бы пользоваться им для распознавания интервью).

В общем, Федя починит обе эти проблемы. Посмотреть, как вайбкодят крутые программисты, можно будет в эту субботу в 14:00 по Москве. Ссылку выложу ближе к делу.

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

Дорогие разработчики, кто ищет работу: будьте осторожны при открытии «репозиториев с тестовыми заданиями» с помощью VSCode. Там внутри могут быть вирусы, которые крадут всю крипту с компьютера. Движок тот же, что и у сентябрьской эпидемии Шай-Хулуд, которая заразила тогда сотни Javascript-библиотек.

Нажимаешь «я доверяю автору этого репозитория» и тю-тю, прямо как раньше вирусы на windows. Говорят, северокорейские хакеры.

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

Разработчики опен-сорса тонут под потоком фейковых сообщений об уязвимостях.

Ну как фейковых: люди (в основном, индусы), в попытках заработать денег, генерируют эти сообщения (vulnerability reports) с помощью нейросетей.

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

Налицо классическая асимметрия, где отправка сообщения сильно дешевле, чем его получение. Это приводит к проблемам. Решения тоже классические:

1. Требовать не только текстовое описание уязвимости, но и Proof of concept код её эксплуатации, запись видео экрана, где видна проблема
2. Брать залог в условные 50 долларов за рассмотрение каждой уязвимости, который возвращается, если уязвимость есть.
3. Требовать указания, был ли использован ИИ для генерации сообщения и если да — то как именно. И как были проверены его результаты. Так делают Django и curl, например.
4. Клин клином вышибать. Поставить ИИ-анализатор всех багрепортов перед живыми людьми.

Ещё одна институция, которая работала на доверии — поломана.

Как ранний интернет, который строился на доверии, мутировал в достаточно устойчивую к хакерам систему — то же происходит с миром софта.