Полезности сегодняшнего дня.
Visitor – удобный паттерн, чтобы пройтись по родительским элементам и дочерним, при это сохраняя какой-то контекст для выполнения действий.
Задача:
- Написать валидатор минут, часов, дней, месяцев, дней недель для крон выражений
Решение №1
- Получает выражение
- Берем первый элемент
- Понимаем что в нем содержится
- Отправляем в валидатор
Минусы в том, что в выражении конкретной позиции может быть несколько типов:
- Перечисление: 1,2,3
- Диапазон: 1-5
- Шаг: 2/3
- Комбинация: 1-5,10-15/2,3,4,5
Как в таком коде достать "число"? Можно регулярками, подстроками, можно забить, поддержать примитивные паттерны.
А можно создать визитор, который будет проходить проходить через нашу функцию когда заходит в "конечное число".
Таким образом, решение №2 очень элегантным:
- Создаем визитор на весь файл, чтобы пройти по всем выражениями
- При заходе в минутный паттерн, создаем новый визитор для минут, описываем нужную логику: разрешены цифры 0-59
- При заходе в часовой паттерт, создаем новый визитор для часов. Разрешены 0-23 числа
- При заходе в месяц можно дополнительно проверить еще и строковое представление
- И так далее
Таким образом, если мы будем парсить минутный диапазон 1-10/2, то наш минутный визитор пройдет через: 1, 10 и 2.
Любое из этих чисел ни при каком условии не должно быть вне диапазона 0-59.
Если мы захотим написать валидатор для диапазона, вы знаете как это можно будет сделать :))))
Пост был в PHPeople еще месяц назад, подписывайтесь через @phpeople_bot
Visitor – удобный паттерн, чтобы пройтись по родительским элементам и дочерним, при это сохраняя какой-то контекст для выполнения действий.
Задача:
- Написать валидатор минут, часов, дней, месяцев, дней недель для крон выражений
Решение №1
- Получает выражение
- Берем первый элемент
- Понимаем что в нем содержится
- Отправляем в валидатор
Минусы в том, что в выражении конкретной позиции может быть несколько типов:
- Перечисление: 1,2,3
- Диапазон: 1-5
- Шаг: 2/3
- Комбинация: 1-5,10-15/2,3,4,5
Как в таком коде достать "число"? Можно регулярками, подстроками, можно забить, поддержать примитивные паттерны.
А можно создать визитор, который будет проходить проходить через нашу функцию когда заходит в "конечное число".
Таким образом, решение №2 очень элегантным:
- Создаем визитор на весь файл, чтобы пройти по всем выражениями
- При заходе в минутный паттерн, создаем новый визитор для минут, описываем нужную логику: разрешены цифры 0-59
- При заходе в часовой паттерт, создаем новый визитор для часов. Разрешены 0-23 числа
- При заходе в месяц можно дополнительно проверить еще и строковое представление
- И так далее
Таким образом, если мы будем парсить минутный диапазон 1-10/2, то наш минутный визитор пройдет через: 1, 10 и 2.
Любое из этих чисел ни при каком условии не должно быть вне диапазона 0-59.
Если мы захотим написать валидатор для диапазона, вы знаете как это можно будет сделать :))))
Пост был в PHPeople еще месяц назад, подписывайтесь через @phpeople_bot
1👍9❤4🔥2
Codex Is Now Integrated Into JetBrains IDEs
Jetbrains изначально провтыкали ИИ-бум, когда каждый второй чайник кричал, что это IDE нового поколения (на самом деле это всё кусок VS кода).
Позже вышел Junie, который умел кое-что, но работало оно довольно слабо.
Параллельно существовал AI Assistant, который умел что-то где-то: где-то рядом с ошибкой была кнопка “Explain with AI”, где-то не было и всё в этом духе.
Не так давно Junie внедрили с AI Assistant плагин. Теперь чат и агент в одном окно, это удобно!
Помимо этого, можно выбрать вместо Джуна Клода. А теперь еще и Кодекса.
Вот признаки нормального инструмента: всё в одном месте, работает одинаково для юзера, хоть и по-разному под капотом.
Появится еще другие агенты, добавятся здесь в списке.
Не удивлюсь, если это всё сделано через систему плагинов и я могу втащить туда своего агента.
——
Пост: https://blog.jetbrains.com/ai/2026/01/codex-in-jetbrains-ides/
——
@handle_topic
Jetbrains изначально провтыкали ИИ-бум, когда каждый второй чайник кричал, что это IDE нового поколения (на самом деле это всё кусок VS кода).
Позже вышел Junie, который умел кое-что, но работало оно довольно слабо.
Параллельно существовал AI Assistant, который умел что-то где-то: где-то рядом с ошибкой была кнопка “Explain with AI”, где-то не было и всё в этом духе.
Не так давно Junie внедрили с AI Assistant плагин. Теперь чат и агент в одном окно, это удобно!
Помимо этого, можно выбрать вместо Джуна Клода. А теперь еще и Кодекса.
Вот признаки нормального инструмента: всё в одном месте, работает одинаково для юзера, хоть и по-разному под капотом.
Появится еще другие агенты, добавятся здесь в списке.
Не удивлюсь, если это всё сделано через систему плагинов и я могу втащить туда своего агента.
——
Пост: https://blog.jetbrains.com/ai/2026/01/codex-in-jetbrains-ides/
——
@handle_topic
1🔥9❤1👍1
Прочел сейчас статью https://josezarazua.com/im-a-former-cto-here-is-the-15-sec-coding-test-i-used-to-instantly-filter-out-50-of-unqualified-applicants/
Занятная штука. Логика в том, что в тексте скрыт знак равно = в условии. Если скопировать и вставить текст как без форматирования, то получишь if x >= 3: в условии, а это ведет к совершенно иному результату.
Хороший трюк, так и ИИ, и онлайн выполнение, и друг-программист выдадут один и тот же результат. Ведь вы пришлёте им >= в условии, а глазом можно будет и не разглядеть.
Как бы вы отреагировали на отказ после такого задания? Как вообще реагируете на отказы при поисках работы?
Я обычно начинаю допрашивать тех, с кем общался – дай фидбек; ну дай; скажи че сказали; а если по-чесноку? я же нормально задание прошел, почему теперь вдруг я зафейлил его? И тому подобное
По сабжу. На моей личной практике встречалось такое, что интервьювер дает тебе задание, ты его решаешь, а он решить не может😐
Либо решил другим способом, а это решение не принимается, потому что от тебя ожидали другое решение. И это не то, чтобы ты взял и списал решение из интернетов, а пришел логически к правильному результату, на твой путь просто другой.
Грубо говоря, когда попросили реализовать калькулятор, а ты не реализовал паттерн стратегию.
Является ли это тем, что тебя попросили сделать? Да
Работает ли это правильно по всем тест-кейсам? Да
Подходит ли это под правильный ответ на текущем собесе? Нет
Тогда что мы здесь проверяем, мою смекалку и возможности чтения мыслей?
—
Пост был доступен в🐘 PHP People.
Для получения доступа можно подписаться в @phpeople_bot
—
@handle_topic
Занятная штука. Логика в том, что в тексте скрыт знак равно = в условии. Если скопировать и вставить текст как без форматирования, то получишь if x >= 3: в условии, а это ведет к совершенно иному результату.
Хороший трюк, так и ИИ, и онлайн выполнение, и друг-программист выдадут один и тот же результат. Ведь вы пришлёте им >= в условии, а глазом можно будет и не разглядеть.
Как бы вы отреагировали на отказ после такого задания? Как вообще реагируете на отказы при поисках работы?
Я обычно начинаю допрашивать тех, с кем общался – дай фидбек; ну дай; скажи че сказали; а если по-чесноку? я же нормально задание прошел, почему теперь вдруг я зафейлил его? И тому подобное
По сабжу. На моей личной практике встречалось такое, что интервьювер дает тебе задание, ты его решаешь, а он решить не может
Либо решил другим способом, а это решение не принимается, потому что от тебя ожидали другое решение. И это не то, чтобы ты взял и списал решение из интернетов, а пришел логически к правильному результату, на твой путь просто другой.
Грубо говоря, когда попросили реализовать калькулятор, а ты не реализовал паттерн стратегию.
Является ли это тем, что тебя попросили сделать? Да
Работает ли это правильно по всем тест-кейсам? Да
Подходит ли это под правильный ответ на текущем собесе? Нет
Тогда что мы здесь проверяем, мою смекалку и возможности чтения мыслей?
—
Пост был доступен в
Для получения доступа можно подписаться в @phpeople_bot
—
@handle_topic
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍7🔥3❤1👎1
Clwadbot, Moltbot, OpenClawd
Не пробовал, как появится стабильный интернет подниму и попробую.
Кстати, Таймвеб позволяет развернуть в пару кликов. Не реклама, но я попробую там.
Для вдохновения:
https://habr.com/ru/articles/990786/
——
@handle_topic
Не пробовал, как появится стабильный интернет подниму и попробую.
Кстати, Таймвеб позволяет развернуть в пару кликов. Не реклама, но я попробую там.
Для вдохновения:
https://habr.com/ru/articles/990786/
——
@handle_topic
Хабр
Clawdbot → Moltbot → OpenClaw ≠ магия: честный гайд по приручению AI-ассистента
Статья обновлена 20 апреля 💡 Впервые написал это у себя в блоге «Контролируемые галлюцинации». Оригинал статьи здесь. Середина января. Новогодние каникулы уже позади, но рабочий ритм ещё не вернулся —...
1👍5❤3🔥1
Temporal Minimal Setup
Temporal — инструмент для управления бизнес-процессами.
Temporal состоит из нескольких компонентов:
- Server
- Worker
- Client
Server
Сервер Temporal реализует протокол взаимодействия между Client и Worker. Также Temporal выполняет оркестрацию процессов: следит за таймаутами, ретраями, предоставляет Web UI и другие возможности.
Worker
Worker подписывается на очередь событий, в которую пишет Server. Server размещает в очереди задачи, которые могут быть разных типов. Задачи Workflow обрабатываются одним воркером в один момент времени. Задачи Activity обрабатываются пулом процессов.
Client
Программный код, который ставит задачу Server и может ожидать результат выполнения.
Workflow
Бизнес-логика вашего процесса. Никаких сетевых запросов, обращений к файлам, системному времени, генераторам случайных чисел — только детерминированный код.
Workflow может вызывать другой Workflow или Activity. При выполнении Workflow сохраняет чекпоинты в истории на Server. При перезапуске процесса пройденные шаги не выполняются заново, а восстанавливаются из истории. Перезапуск может произойти из-за ошибки, таймаута или внешнего сигнала. История доступна в Web UI.
Activity
Здесь может быть любой код: сетевые запросы, работа с файлами, внешние API.
Activity вызывается только из Workflow. Когда Workflow вызывает Activity, результат сохраняется в истории и при Replay не выполняется повторно.
---
Быстрый старт
Я подготовил минимальный шаблон для работы с Temporal на PHP.
Шаги:
1. Клонировать репозиторий
2. Убедиться, что установлены PHP 8.1+ и расширение grpc
3. composer install — установит PHP-зависимости
4. ./vendor/bin/dload — скачает RoadRunner (`rr`) и Temporal CLI (`temporal`)
5. ./temporal server start-dev — запустит Temporal Server
6. ./rr serve — запустит RoadRunner с воркерами
Теперь Temporal Server готов к работе, а RoadRunner запустил воркеры для обработки Workflow и Activity.
Выполнение задачи:
Не выключая предыдущие команды, запустите:
Путь данных:
1. Client отправляет задачу в Temporal Server
2. Server размещает задачу в очереди
3. RoadRunner получает задачу и передаёт в Workflow
4. Workflow выполняет логику и запрашивает Activity
5. Server размещает задачу для Activity
6. Activity выполняется, результат сохраняется
7. Workflow получает результат, завершается
8. Client получает итоговый результат
—
GitHub: https://github.com/xepozz/temporal-minimal-example
—
Пост был доступен в🐘 PHP People.
Для получения доступа можно подписаться в @phpeople_bot
—
@handle_topic
Temporal — инструмент для управления бизнес-процессами.
Temporal состоит из нескольких компонентов:
- Server
- Worker
- Client
Server
Сервер Temporal реализует протокол взаимодействия между Client и Worker. Также Temporal выполняет оркестрацию процессов: следит за таймаутами, ретраями, предоставляет Web UI и другие возможности.
Worker
Worker подписывается на очередь событий, в которую пишет Server. Server размещает в очереди задачи, которые могут быть разных типов. Задачи Workflow обрабатываются одним воркером в один момент времени. Задачи Activity обрабатываются пулом процессов.
Client
Программный код, который ставит задачу Server и может ожидать результат выполнения.
Workflow
Бизнес-логика вашего процесса. Никаких сетевых запросов, обращений к файлам, системному времени, генераторам случайных чисел — только детерминированный код.
Workflow может вызывать другой Workflow или Activity. При выполнении Workflow сохраняет чекпоинты в истории на Server. При перезапуске процесса пройденные шаги не выполняются заново, а восстанавливаются из истории. Перезапуск может произойти из-за ошибки, таймаута или внешнего сигнала. История доступна в Web UI.
Activity
Здесь может быть любой код: сетевые запросы, работа с файлами, внешние API.
Activity вызывается только из Workflow. Когда Workflow вызывает Activity, результат сохраняется в истории и при Replay не выполняется повторно.
---
Быстрый старт
Я подготовил минимальный шаблон для работы с Temporal на PHP.
Шаги:
1. Клонировать репозиторий
2. Убедиться, что установлены PHP 8.1+ и расширение grpc
3. composer install — установит PHP-зависимости
4. ./vendor/bin/dload — скачает RoadRunner (`rr`) и Temporal CLI (`temporal`)
5. ./temporal server start-dev — запустит Temporal Server
6. ./rr serve — запустит RoadRunner с воркерами
Теперь Temporal Server готов к работе, а RoadRunner запустил воркеры для обработки Workflow и Activity.
Выполнение задачи:
Не выключая предыдущие команды, запустите:
php client.php
Путь данных:
1. Client отправляет задачу в Temporal Server
2. Server размещает задачу в очереди
3. RoadRunner получает задачу и передаёт в Workflow
4. Workflow выполняет логику и запрашивает Activity
5. Server размещает задачу для Activity
6. Activity выполняется, результат сохраняется
7. Workflow получает результат, завершается
8. Client получает итоговый результат
—
GitHub: https://github.com/xepozz/temporal-minimal-example
—
Пост был доступен в
Для получения доступа можно подписаться в @phpeople_bot
—
@handle_topic
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - xepozz/temporal-minimal-example
Contribute to xepozz/temporal-minimal-example development by creating an account on GitHub.
1🔥9❤3👍3
Оптимизация кода
Возможно, многие знают Brent Roose – дев адвокат в Jetbrains, отец Tempest PHP Framework, автор блога stitcher.io и много еще чего.
Так вот, он сделал себе для блога систему аналитики, которая собирает исходные данные о юзерах, сохраняет их себе, а потом он создает проекции данных на основе этой истории. Удобно не хранить десятки миллионов дублей, а лишь конечные проекции.
Изначальный код был написан как типичным ларавельщиком – колбек в колбеке в цикле цикла. Ну вы поняли.
Перформил этот механизм так себе – ~30 ивентов в секунду. С миллионом записей пришлось бы ждать … долго.
Начал он оптимизировать и вот к чему пришел: 1.6M events / second
Видос небольшой и покрывает только первую часть, когда он пришел к 110K events / second.
Всё равно выглядит очень мощно. Многим могут показаться полезным способы оптимизаций, поэтому запоминайте.
А если знаете еще – пишите ему в коментах или в твиттере. Он так и прокачался с 15к до 1.6M – через комменты в твиттере и под статьёй.
Видос: https://www.youtube.com/watch?v=GY4RIj_zn1M
Статья: https://stitcher.io/blog/processing-11-million-rows
——
@handle_topic
Возможно, многие знают Brent Roose – дев адвокат в Jetbrains, отец Tempest PHP Framework, автор блога stitcher.io и много еще чего.
Так вот, он сделал себе для блога систему аналитики, которая собирает исходные данные о юзерах, сохраняет их себе, а потом он создает проекции данных на основе этой истории. Удобно не хранить десятки миллионов дублей, а лишь конечные проекции.
Изначальный код был написан как типичным ларавельщиком – колбек в колбеке в цикле цикла. Ну вы поняли.
Перформил этот механизм так себе – ~30 ивентов в секунду. С миллионом записей пришлось бы ждать … долго.
Начал он оптимизировать и вот к чему пришел: 1.6M events / second
Видос небольшой и покрывает только первую часть, когда он пришел к 110K events / second.
Всё равно выглядит очень мощно. Многим могут показаться полезным способы оптимизаций, поэтому запоминайте.
А если знаете еще – пишите ему в коментах или в твиттере. Он так и прокачался с 15к до 1.6M – через комменты в твиттере и под статьёй.
Видос: https://www.youtube.com/watch?v=GY4RIj_zn1M
Статья: https://stitcher.io/blog/processing-11-million-rows
——
@handle_topic
YouTube
Processing MILLIONS OF ROWS in PHP in MINUTES instead of DAYS
I went on a little adventure. Find all links to the source code here: https://stitcher.io/blog/processing-11-million-rows
#php #oss #webdev #programming #coding
#php #oss #webdev #programming #coding
1👍7❤5🔥5
Forwarded from agoalofalife
Серия видеоуроков по Temporal
Если вы когда-нибудь писали долгоживущие бизнес-процессы на очередях, должны знать весь "геморрой": повторные попытки, потеря состояния, координация шагов и т.д.
Многие уже слышали про temporal, но не все успели его попробовать и разобраться.
Так как я активно использую temporal на работе и сейчас эта технология становится популярна в узких кругах, стал записать в свободном формате уроки на youtube.
Концепция мне быстра стала понятна, так как я пытался такое делать еще сам (была аналогичная идея в голове), на очередях, сериализации php и т.д.
Сначала думал записать все разом и выпустить, но потом решил, что будет полезна обратная связь, и пока выпускаю видео по мере готовности.
Уже вышли первые 3 видео на youtube:
• План курса
Тут рассказал что собираюсь показать в этой серии видеоуроков, какие темы затронем и какой бизнес flow.
• Для чего нужен temporal
Объясняю какие есть плюсы и минусы temporal, для чего он был в целом придуман и как эти же проблемы решаются очередями.
• Настройка и установка проекта PHP+Laravel+RoadRunner
Рассказываю про настройку проекта на Laravel. Установка docker, настройка road runner (RR), сериализации данных в temporal из php.
Пишем первый Hello World.
Видео выходят раз в неделю или реже(зависит от свободного времени).
В конце собираюсь подвести итоги и показать сколько времени надо на подготовку и запись такого материала.
Что можно сделать сейчас?
• Посмотреть что-нибудь из текущего и оставить обратную(конструктивную) связь
• Поставить лайк и подписаться на youtube канал
• Подписаться на boosty
Исходники на Github кода который пишется на видео.
Если вы когда-нибудь писали долгоживущие бизнес-процессы на очередях, должны знать весь "геморрой": повторные попытки, потеря состояния, координация шагов и т.д.
Многие уже слышали про temporal, но не все успели его попробовать и разобраться.
Так как я активно использую temporal на работе и сейчас эта технология становится популярна в узких кругах, стал записать в свободном формате уроки на youtube.
Концепция мне быстра стала понятна, так как я пытался такое делать еще сам (была аналогичная идея в голове), на очередях, сериализации php и т.д.
Сначала думал записать все разом и выпустить, но потом решил, что будет полезна обратная связь, и пока выпускаю видео по мере готовности.
Уже вышли первые 3 видео на youtube:
• План курса
Тут рассказал что собираюсь показать в этой серии видеоуроков, какие темы затронем и какой бизнес flow.
• Для чего нужен temporal
Объясняю какие есть плюсы и минусы temporal, для чего он был в целом придуман и как эти же проблемы решаются очередями.
• Настройка и установка проекта PHP+Laravel+RoadRunner
Рассказываю про настройку проекта на Laravel. Установка docker, настройка road runner (RR), сериализации данных в temporal из php.
Пишем первый Hello World.
Видео выходят раз в неделю или реже(зависит от свободного времени).
В конце собираюсь подвести итоги и показать сколько времени надо на подготовку и запись такого материала.
Что можно сделать сейчас?
• Посмотреть что-нибудь из текущего и оставить обратную(конструктивную) связь
• Поставить лайк и подписаться на youtube канал
• Подписаться на boosty
Исходники на Github кода который пишется на видео.
🔥19👍8❤6
Jetbrains Qure
Не так давно вышел в публичную бету Air.dev, инструмент на Fleet движке для вайб-кодеров.
Не знаю как вам, но мне всё еще нужна мощь IDE, а не отображение текста при работе с кодом.
А теперь появилась Кура, которая позволит создавать удобные e2e тесты.
Каждый раз когда писал e2e страдал, сейчас страдает нейронка, а потом страдаю я, исправляя баги и указывая что же я хотел потестить, но в JB хотят чтобы никто не страдал.
Записался, посмотрю.
Помню раньше был JB Aqua:
• сначала как отдельная IDE для тестировщиков
• потом в виде плагина в другие IDE (если не путаю)
• а в прошлом году и вовсе закрыли
Придет ли Кура к успеху?
Ссылка: https://quretests.com/
——
@handle_topic
Не так давно вышел в публичную бету Air.dev, инструмент на Fleet движке для вайб-кодеров.
Не знаю как вам, но мне всё еще нужна мощь IDE, а не отображение текста при работе с кодом.
А теперь появилась Кура, которая позволит создавать удобные e2e тесты.
Каждый раз когда писал e2e страдал, сейчас страдает нейронка, а потом страдаю я, исправляя баги и указывая что же я хотел потестить, но в JB хотят чтобы никто не страдал.
Записался, посмотрю.
Помню раньше был JB Aqua:
• сначала как отдельная IDE для тестировщиков
• потом в виде плагина в другие IDE (если не путаю)
• а в прошлом году и вовсе закрыли
Придет ли Кура к успеху?
Ссылка: https://quretests.com/
——
@handle_topic
1🔥5👍3❤2
Playwright
Отличный движок (EBAD CHO ZA ENGINE) для работы с чем угодно через браузер для ИИ.
Умеет:
• ходить по страницам
• гуглить в гугле как обычный ламер
• делать скриншоты
• жмать батоны, сабмитить формы
• проверять анимацию
• смотреть за консоль.логами и нетворком
Жаль не открыл для себя этот инструмент раньше. Хоть и не открыл полностью сейчас.
——
@handle_topic
Отличный движок (EBAD CHO ZA ENGINE) для работы с чем угодно через браузер для ИИ.
Умеет:
• ходить по страницам
• гуглить в гугле как обычный ламер
• делать скриншоты
• жмать батоны, сабмитить формы
• проверять анимацию
• смотреть за консоль.логами и нетворком
Жаль не открыл для себя этот инструмент раньше. Хоть и не открыл полностью сейчас.
——
@handle_topic
1❤3👍2🔥1
В IDEA появились шорткаты для запуска агентов!
По правой сторону у терминала дропдаун и кнопка для запуска агента в новой сессии терминала (в новом табе)
Интересно, а как добавить другие?🤨
——
@handle_topic
По правой сторону у терминала дропдаун и кнопка для запуска агента в новой сессии терминала (в новом табе)
Интересно, а как добавить другие?
——
@handle_topic
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤1👍1
Если у вас есть Junie CLI, то можно его запускать быстрым способом.
Прикольно нарисовали Junie и иконку слэшами.
Но эти слэши стали кликабельными и нажатие на один из них открывает Finder (проводник).
Баг или фича?
——
@handle_topic
Прикольно нарисовали Junie и иконку слэшами.
Но эти слэши стали кликабельными и нажатие на один из них открывает Finder (проводник).
Баг или фича?
——
@handle_topic
❤1👍1🔥1
Forwarded from PHP Fart Time (Алексей roxblnfk)
php-testo.github.io
Современный PHP-фреймворк для тестирования
👍9🔥5
Forwarded from Находки в опенсорсе
ИИ переписал Bun с Zig на Rust
PR: https://github.com/oven-sh/bun/pull/30412 (он настолько большой, что гитхаб его не открывает у меня)
Последние несколько дней в чате очень плотно обсуждали последнюю ИИ новость.
Один из альтернативных JS рантаймов bun полность переписали с zig на #rust.
Переписывали, конечно же, используя исключительно агентов и ИИ (от компании Anthropic) .
На все про все ушло 10 дней, тесты прошли, перформанс остался такой же.
Звучит красиво? Красиво.
Таймлайн истории
1. 2 декабря 2025 года Anthropic покупает bun и всю команду: https://bun.com/blog/bun-joins-anthropic
2. Команда Zig известна своим "No AI Slop" policy (прямо как django-modern-rest), некоторые люди сразу предсказывали конфликт интересов между Bun + Anthropic и Zig
3. 26 апреля 2026 года, команда bun форкает zig и добавляет туда поддержку параллельного семантического анализа https://x.com/bunjavascript/status/2048427636414923250
4. 9 мая открывается тот самый PR
5. 14 мая он успешно смерджен
Важные детали
А вот тут начинается интересное.
- Для начала авторы Zig объяснили, что подход форка с семаналом некорректный, и что они сами работают над данной фичей, скоро она будет доступна: https://ziggit.dev/t/bun-s-zig-fork-got-4x-faster-compilation-times/15183/19
- Билды получились недетерминированные, о чем им и рассказала кор-команда. Тогда форк пришлось закопать, видимо
Теперь посмотрим на качество PR.
- Качество кода там примерно вот такое: https://github.com/oven-sh/bun/commit/d144fa6e20ab65d55add82ef3241609dcbb04cdc (то есть - никакое)
- Файлы в нем даже были неотформатированы встроенным
- Ревью не было, потому что внутри PRа
-
- "Скорость работы осталось такой же" - довольно странный тезис, учитывая что zig и rust оба генерят код через LLVM, часто практически идентичный, заслуги ИИ здесь нет
Выводы
- Прикольно, что такое вообще можно сделать (с неограниченными токенами)
- Как теперь bun будет владеть своей базой кода, кто сможет в ней разобраться и что-то пофиксить - вопрос открытый
- Какой смысл во всем действии (кроме очевидного маркетинга) - вопрос открытый
- Брать ли теперь bun в прод? Конечно нет
Обсуждение: что вы думаете по данному вопросу? Стали бы использовать bun у себя в проекте в новом виде?
| Поддержать | YouTube | GitHub | Чат |
PR: https://github.com/oven-sh/bun/pull/30412 (он настолько большой, что гитхаб его не открывает у меня)
Последние несколько дней в чате очень плотно обсуждали последнюю ИИ новость.
Один из альтернативных JS рантаймов bun полность переписали с zig на #rust.
Переписывали, конечно же, используя исключительно агентов и ИИ (от компании Anthropic) .
На все про все ушло 10 дней, тесты прошли, перформанс остался такой же.
Звучит красиво? Красиво.
Таймлайн истории
1. 2 декабря 2025 года Anthropic покупает bun и всю команду: https://bun.com/blog/bun-joins-anthropic
2. Команда Zig известна своим "No AI Slop" policy (прямо как django-modern-rest), некоторые люди сразу предсказывали конфликт интересов между Bun + Anthropic и Zig
3. 26 апреля 2026 года, команда bun форкает zig и добавляет туда поддержку параллельного семантического анализа https://x.com/bunjavascript/status/2048427636414923250
4. 9 мая открывается тот самый PR
5. 14 мая он успешно смерджен
Важные детали
А вот тут начинается интересное.
- Для начала авторы Zig объяснили, что подход форка с семаналом некорректный, и что они сами работают над данной фичей, скоро она будет доступна: https://ziggit.dev/t/bun-s-zig-fork-got-4x-faster-compilation-times/15183/19
- Билды получились недетерминированные, о чем им и рассказала кор-команда. Тогда форк пришлось закопать, видимо
Теперь посмотрим на качество PR.
- Качество кода там примерно вот такое: https://github.com/oven-sh/bun/commit/d144fa6e20ab65d55add82ef3241609dcbb04cdc (то есть - никакое)
- Файлы в нем даже были неотформатированы встроенным
cargo fmt, что делается буквально в каждом Rust проекте: https://github.com/oven-sh/bun/pull/30695- Ревью не было, потому что внутри PRа
+1 009 257, -4 024 и 6000+ коммитов-
unsafe в коде встречает 10487 раз (да, там много ffi, но все равно). Для сравнения в uv (кода правда меньше в 2 раза) - всего 73 раза- "Скорость работы осталось такой же" - довольно странный тезис, учитывая что zig и rust оба генерят код через LLVM, часто практически идентичный, заслуги ИИ здесь нет
Выводы
- Прикольно, что такое вообще можно сделать (с неограниченными токенами)
- Как теперь bun будет владеть своей базой кода, кто сможет в ней разобраться и что-то пофиксить - вопрос открытый
- Какой смысл во всем действии (кроме очевидного маркетинга) - вопрос открытый
- Брать ли теперь bun в прод? Конечно нет
Обсуждение: что вы думаете по данному вопросу? Стали бы использовать bun у себя в проекте в новом виде?
| Поддержать | YouTube | GitHub | Чат |
👍5❤1
Forwarded from Новости от CutCode
PHP-стрим: generics, RFC и AI
Собираем ламповый стрим с ребятами из PHP-сообщества.
Главная тема — RFC по generics в PHP: зачем они нужны, что могут решить, где усложнят язык и как повлияют на Laravel/Symfony, библиотеки и статический анализ.
Плюс обсудим, что сейчас происходит в разработке с AI!
Предварительно участвуют: Кирилл Несмеянов, Алексей Гагарин, Эдмон Дантес, Дмитрий Дерепко. Возможно подключатся Андрей Helldar и Сергей Пантелеев.
21 мая в 19:00 мск на YouTube
Приходите, если пишете на PHP и хотите обсудить, куда движется язык и профессия.
Собираем ламповый стрим с ребятами из PHP-сообщества.
Главная тема — RFC по generics в PHP: зачем они нужны, что могут решить, где усложнят язык и как повлияют на Laravel/Symfony, библиотеки и статический анализ.
Плюс обсудим, что сейчас происходит в разработке с AI!
Предварительно участвуют: Кирилл Несмеянов, Алексей Гагарин, Эдмон Дантес, Дмитрий Дерепко. Возможно подключатся Андрей Helldar и Сергей Пантелеев.
21 мая в 19:00 мск на YouTube
Приходите, если пишете на PHP и хотите обсудить, куда движется язык и профессия.
YouTube
PHP-стрим: generics RFC и AI
Собираем ламповый стрим с ребятами из PHP-сообщества.
Главная тема — RFC по generics в PHP: зачем они нужны, что могут решить, где усложнят язык и как повлияют на Laravel/Symfony, библиотеки и статический анализ.
Предварительно участвуют: Кирилл Несмеянов…
Главная тема — RFC по generics в PHP: зачем они нужны, что могут решить, где усложнят язык и как повлияют на Laravel/Symfony, библиотеки и статический анализ.
Предварительно участвуют: Кирилл Несмеянов…
👍4❤3🔥2
JetBrains PHPverse 2026 – Bringing the PHP community together
Через 20 минут, в 14:00 по МСК или в 11:00 по UTC начинается конфа по PHP!
Программа:
14:00 – 14:15 Открытие: Enter the PHPverse
Brent Roose, Nuno Maduro
14:15 – 14:45 PHP Foundation Keynote
Elizabeth Barron
14:50 – 15:20 My AI Writes Perfect* PHP
Ashley Hindle
15:25 – 15:55 WordPress is dead, long live WordPress!
Jonathan Bossenger
16:00 – 16:30 Packagist Internals
Nils Adermann
16:30 – 16:50 Special Segment: Community and Surprises
Brent Roose, Nuno Maduro
16:50 – 17:20 Running a large open-source project like Symfony
Fabien Potencier
17:25 – 17:55 PHP RFCs
Larry Garfield
18:00 – 18:30 How AI Is Changing the Programmer World
Jeffrey Way
18:30 – 18:50 Wrap-Up
Brent Roose, Nuno Maduro
——
Ссылка: https://www.youtube.com/live/NR9L0zwXJq4
——
@handle_topic
Через 20 минут, в 14:00 по МСК или в 11:00 по UTC начинается конфа по PHP!
Программа:
14:00 – 14:15 Открытие: Enter the PHPverse
Brent Roose, Nuno Maduro
14:15 – 14:45 PHP Foundation Keynote
Elizabeth Barron
14:50 – 15:20 My AI Writes Perfect* PHP
Ashley Hindle
15:25 – 15:55 WordPress is dead, long live WordPress!
Jonathan Bossenger
16:00 – 16:30 Packagist Internals
Nils Adermann
16:30 – 16:50 Special Segment: Community and Surprises
Brent Roose, Nuno Maduro
16:50 – 17:20 Running a large open-source project like Symfony
Fabien Potencier
17:25 – 17:55 PHP RFCs
Larry Garfield
18:00 – 18:30 How AI Is Changing the Programmer World
Jeffrey Way
18:30 – 18:50 Wrap-Up
Brent Roose, Nuno Maduro
——
Ссылка: https://www.youtube.com/live/NR9L0zwXJq4
——
@handle_topic
5❤3👍2🔥2