iTech
1.46K subscribers
15 photos
5 links
News • Web • Architecture • Performance • AI

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

Лайфхаки, полезные решения и инженерные идеи из реальной практики.

Я — Артемий, full-stack разработчик с 20-летним опытом.
Download Telegram
Codex + PC + iPhone

⚡️ У Codex появилась невероятно полезная фича, хотя и банально простая: теперь компьютер можно подключить к смартфону и управлять задачами прямо с телефона.

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

А также это работает нативно с вашей обычной подпиской, а значит вам не нужно дополнительно покупать API.

Это не про замену IDE и не про попытку писать код на маленьком экране. Телефон здесь нужен для другого: быстро дать команду, посмотреть результат и принять решение, пока Codex работает на компьютере.

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

Например, по дороге домой можно:
🎙 надиктовать уточнение
🔍 посмотреть diff
принять финальные правки
📝 попросить Codex подготовить описание для merge request
🔥153151🥰144👍142🎉136🤩133❤‍🔥133💯129😍115😁27
Вышел новый Storybook 10.4

1. Automated setup ⚙️

Storybook теперь можно настраивать через AI-агента.
Он может сам создать конфиг, добавить моки, написать stories и interaction tests, проверить рендер компонентов и доработать настройку, пока проект не заведётся.

Главная польза: меньше ручной настройки на старте.

2. Change detection 👀

-В сайдбаре появились фильтры New, Modified и Related.

Они показывают:

- новые stories;
- изменённые stories;
- stories, которые могли быть затронуты изменениями в коде.

Почему это удобно: для UI-ревью не нужно смотреть весь Storybook. Можно сразу открыть то, что реально изменилось или могло сломаться.

3. Quick sharing 🔗

Теперь можно быстро поделиться конкретной story, над которой работаешь.

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

Главное: не нужен commit, PR или ожидание CI. Открыл нужную story, отправил ссылку, получил обратную связь.

4. TanStack React framework 🧩

Добавили поддержку React-проектов на TanStack через @storybook/tanstack-react.

TanStack — это набор инструментов для React: роутинг, работа с серверными данными, server functions и React Query.

Если проект использует TanStack Router, TanStack Start или React Query, Storybook теперь проще подключить и настроить.

5. React Native setup and isolation 📱

Этот пункт относится только к проектам на React Native.

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

STORYBOOK_ENABLED=true — это технический переключатель именно для React Native-проектов. Для обычных web-проектов на React или Vue это не актуально.

6. React Component Meta for MCP 🚀

Добавили экспериментальный react-component-meta.

Он анализирует React-компоненты: props, типы, описания и API компонента.

Главное преимущество: скорость. В примерах из статьи новый анализатор работает в десятки раз быстрее старого react-docgen-typescript.

За счёт этого Storybook быстрее понимает структуру компонентов, а AI-инструменты быстрее получают нужный контекст.
🎉157🤩153🔥149🥰139😍135💯135👍127123❤‍🔥112😁16
Сегодня в очередной раз сталкиваясь с проблемами Windows / Docker / WSL вернулся к теме настройки рабочего места.
Если у вас есть уже готовые конфигурации сервисов, то намного удобнее использовать именно их, и docker compose тут очень удобен.

Однако что делать, если вашему процессу Docker надо работать с файлами в файловой системы Windows?
Если вы давно пользуетесь WSL или вообще не являетесь пользователем Windows, то о такой проблеме вы даже не слышали.

Проблема проста: Docker работает в WSL, и если ваш проект находится в Windows (например на диске c:/), то процессы докер при работе с файлами будут тормозить.

Прыгать между окружениями Windows / WSL не удобно, и поэтому использовать WSL не хочется. Тем более, что IDE и другие программы хорошо работают с файловой системой Windows, а попытки их подружить с WSL очередной раз отвлекают от основных задач при работе с проектом.

Кроме этого синтаксис PowerShell я не знаю, переходить на него не хочется, и это для меня не удобно. Но и WSL со своими ограничениями не особ приятен.
Поэтому на Windows использую Git Bash, и этого почти всегда достаточно. Хотя это и менее удобно чем стандартные команды Ubuntu.
Вместе с этим продолжаю искать решения, как поднять необходимые сервисы с минимальными усилиями, которые уже настроены в Docker compose, но которые я не могу использовать с удобством в Windows.

Чтобы быстро тестировать различные варианты интеграций, я написал небольшой тест для проверки скорости работы в Windows / Docker / WSL. ⚙️

Ссылка на этот тест: https://github.com/Artemeey/bench-runtime-windows-vs-wsl/blob/main/README.ru.md#%D0%B1%D1%8B%D1%81%D1%82%D1%80%D1%8B%D0%B9-%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%BE%D0%B9-%D1%82%D0%B5%D1%81%D1%82

Для запуска достаточно выполнить команду, указанную в документации, в нужной папке в Windows / Docker / WSL.

Результаты шокируют: чтение файлов из Docker в папке C:/ медленнее в 40 раз, а механизм кеширования файловой системы ext4 в WSL при повторных обращениях к файлам приводит к ускорению в 10 раз по сравнению с обычной работой в файловой системе Windows. ⚡️

Полный бенчмарк со сравнением работы с файлами в Windows / WSL: https://github.com/Artemeey/bench-runtime-windows-vs-wsl
🎉154🔥153🤩146👍142💯141136❤‍🔥128😍127🥰121😁25
💡Полезные советы: исправляем Unicode в Windows Git Bash

По умолчанию в Git Bash обычно используется UTF-8, и Unicode работает корректно. Однако переменная окружения LANG может быть не задана. Из-за этого после ввода текста на кириллице в консоли может ломаться последующий ввод.

Пример:
* пишем ды
* стираем ды
* пишем ls
* в выводе получаем: bash: □□ls: command not found

Для решения проверьте локаль:
locale

Если значение LANG не задано, установите его вручную:
export LANG=C.UTF-8

Повторите проверку. Если помогло, сохраните настройку в ~/.bashrc:
printf 'export LANG=C.UTF-8\n' >> ~/.bashrc

Проверить содержимое пользовательских настроек Git Bash можно так:
cat ~/.bashrc
😍137🎉135❤‍🔥132👍127🔥127💯127🥰126🤩124107
Карманный ПК переизобретен с ИИ-агентом 💻

Что это значит?
Сейчас расскажу.

Сегодня ездил загород и первый раз провел рабочий день (вернее отдых) с доступом к коду на телефоне 📱, решая рабочие задачи. Пишу задачи ИИ, он начинает работу на домашнем ПК. Раз в 15 минут захожу в телефон и контролирую процесс ⏱️.

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

И отдохнул, и сделал полезные дела, на которые раньше пришлось бы провести у компа много времени 🤖🌳.
🥰142❤‍🔥138😍136133🔥125🎉124🤩119👍118💯104
В Safari 27 Beta была исправлена проблема с загрузкой модулей JS! 🚀

Удивительно слышать в 2026 году, что до сих пор Safari оставался почти единственным браузером, где ESM не работал (или, скорее, почти работал). 🤔

С этого момента ESM приближается к продакшену, и среда разработки становится возможной в Safari (или, точнее, Safari становится более доступным для разработки) 💻

Safari уже формально поддерживал top-level await, но были баги в сложных графах ES-модулей: порядок выполнения модулей и инициализация экспортов могли работать некорректно. В Safari 27 Apple/WebKit переписали загрузчик ES-модулей и исправили проблемы совместимости с top-level await 🛠️

https://bugs.webkit.org/show_bug.cgi?id=242740 🔗
145💯139🎉136👍131😍118🔥116🤩115❤‍🔥109🥰103
Дополнительное полезное обновление в Safari 27 beta 📱

Вскоре в паре с лениво загружаемыми изображениями можно будет использовать в продакшене sizes=\"auto\" 💻.

В Safari 27 beta появилась поддержка sizes=\"auto\". Теперь браузер может самостоятельно определить фактическую ширину изображения в макете и выбрать подходящий файл из srcset без ручного расчета значения sizes.

После релиза Safari 27 все основные браузеры будут поддерживать эту функцию.

Как было раньше:
<img
src="card-800.jpg"
srcset="card-400.jpg 400w, card-800.jpg 800w, card-1200.jpg 1200w"
sizes="(max-width: 768px) 100vw, 33vw"
loading="lazy"
width="1200"
height="800"
alt=""
>


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

Теперь для лениво загружаемых изображений можно использовать sizes="auto":
<img
src="card-800.jpg"
srcset="card-400.jpg 400w, card-800.jpg 800w, card-1200.jpg 1200w"
sizes="auto, 100vw"
loading="lazy"
width="1200"
height="800"
alt=""
>


В этом случае браузер может опираться на фактическую ширину изображения в макете и сам выбрать подходящий ресурс из srcset.
Запасное значение после auto нужно для браузеров, которые не поддерживают этот режим. Например, в sizes="auto, 100vw" современные браузеры смогут использовать auto, а остальные обработают запасное значение 100vw.

Где это особенно полезно
sizes="auto" хорошо подходит для изображений, которые находятся ниже первого экрана и загружаются лениво:
- карточки товаров;
- изображения в списках;
- галереи;
- превью статей;
- адаптивные сетки;
- блоки, ширина которых сильно зависит от контейнера.
😍151🥰128🤩128❤‍🔥127🎉126123💯123👍111🔥108
В Codex теперь можно подключать много плагинов без избыточного заполнения контекста 🚀

Я пропустил это важное обновление, хотя оно напрямую влияет на потребление лимитов подписки GPT.

В конце апреля OpenAI выпустила Codex CLI v0.122.0, где доработали систему плагинов. Теперь плагины не занимают контекст полностью и сразу.

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

Практический пример при включении Figma, Slack, GitHub и Google Drive с моими настройками:
- До v0.122.0 — начальное потребление контекста около 65 000 токенов
- С v0.122.0 — начальное потребление контекста около 14 000 токенов

Теперь не нужно переживать за контекст при подключении плагинов.
Можно держать нужные интеграции включенными и сосредоточиться на настройке комфортного окружения Codex.
139🥰135❤‍🔥135🔥128🤩126😍126🎉119👍113💯102
С радостью представляю новый этап в развитии экосистемы PHP — менеджер расширений PIE (PHP Installer for Extensions)! 🚀

Давайте кратко обсудим ценность PHP-расширений:

- PHP-модуль — это не просто код, а стратегически важный скомпилированный нативный компонент, часто созданный на C или C++ для максимальной эффективности.
- Интеграция происходит через конфигурацию интерпретатора (например, php.ini), что позволяет расширению стать неотъемлемой частью runtime-среды.
- Это открывает возможности для масштабирования функционала:
- внедрение новых классов;
- добавление функций;
- создание констант;
- использование нативных библиотек;
- глубокая интеграция с внешними системными библиотеками.

Долгое время стандартным подходом к управлению расширениями была инфраструктура PECL. Хотя она знакома многим стейкхолдерам, её модель требует обновления для соответствия современным процессам разработки:

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

PIE решает эти вызовы, предлагая современную парадигму, аналогичную Composer, и интегрируясь с Packagist — привычной экосистемой PHP-пакетов.
🌟 Это означает более бесшовный опыт установки, поиска и сопровождения расширений.

Пример внедрения: pie install mongodb/mongodb-extension

PIE поддерживает установку как из исходного кода, так и из готовых бинарных сборок при их наличии.
Требование к среде: PHP 8.1+

Полезные ресурсы для роста:

- Менеджер пакетов PHP: https://packagist.org/
- Расширения PIE: https://packagist.org/extensions
- Поиск расширений для PIE: https://packagist.org/search/?type=php-ext
- Официальный репозиторий проекта на GitHub: https://github.com/php/pie
🤩140🔥134👍128127🥰123❤‍🔥121💯120🎉112😍110
Apple заблокировали приложение VK.

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

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

Простая идея, простой функционал, но сейчас он в руках нескольких компаний мира, и они диктуют всем правила.

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

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

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

«VK никогда не находилась под санкциями и не фигурировала в санкционных списках, что подтверждают многочисленные заключения международных и американских юристов. Официальные заключения юристов и вся необходимая информация давно находятся в распоряжении Apple. Тем не менее Apple без предупреждений в одностороннем порядке удалила приложения VK», — сообщили в пресс-службе холдинга.
🥰142👍131🎉131🤩130125💯124🔥121😍116❤‍🔥110