Пых
8.32K subscribers
182 photos
10 videos
4 files
471 links
Блог @vudaltsov о разработке на PHP.

Хобот: @phpyhobot
YouTube: https://youtube.com/@phpyh
VK Видео: https://vkvideo.ru/@phpyh
Мемы: https://t.me/isPHPdying
Статистика: https://t.me/INOTAROBOT?start=st1219340804

Реклама и вакансии НЕ размещаются.
Download Telegram
📣 Стачка! Stop working! Typhoon!

В эту пятницу в 15:20 по местному времени я выступаю в Ульяновске на Стачке с докладом про Typhoon (секция Backend). Расскажу, как мы собирали систему типов typhoon/type, вдохновляясь Psalm и PHPStan, как её редуцировали, как искали в ней место для self, parent и static.

Ульяновские пыхари, отзовитесь в комментариях! Можем дополнительно организоваться до или после конфы и где-то посидеть.

https://ul24.nastachku.ru/schedule
Please open Telegram to view this post
VIEW IN TELEGRAM
April 9, 2024
April 18, 2024
Уязвимость в iconv() в GNU C Library

Новость про CVE-2024-2961 в привязке к PHP так раздули, что у многих сложилось впечатление, будто уязвимость в самом языке и масштаб последствий для пыхарей невероятно велик. Это не так. Уязвимость проявляется только при использовании функций и стрим-фильтров расширения iconv с непровалидированными кодировками, полученными снаружи. Ну то есть надо прям вот такое иметь в коде, чтобы словить атаку:


iconv('utf-8', $_REQUEST['charset'], 'my_text');


Думаю, все понимают, что в современном коде это маловероятно.

Также не ждите патч-релиза со стороны PHP. glibc подключается динамически и не компилируется в исполняемый файл. Достаточно просто обновить glibc.

Подробнее в официальном ответе на сайте PHP: https://www.php.net/archive/2024.php#2024-04-24-1
April 26, 2024
ML-assisted completion

Примерно с месяц у меня в PhpStorm включен бесплатный Full Line Code Completion. Если бы после обновления он не был "искаропки", я б, наверное, так и не попробовал ничего подобного. Но раз судьба свела, вот мои наблюдения.

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

С помощником:
1. размышляю над тем, что написать дальше,
2. ввожу пару символов, вижу на экране подсказку (иногда с запозданием),
3. зрительно анализирую её (дополнительная мыслительная деятельность),
4. с вероятностью 40% ассистент не угадывает точь-в-точь, goto 2;
5. с вероятностью 60% угадывает, нажимаю Tab.

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

Возможно, я сейчас написал какой-то ретроградский пост и мне просто нужно установить полноценный AI Assistant, тогда-то всё встанет на свои места. Или я пишу не тот код — надо меньше думать, больше формошлёпить и крудить, а не тайфуны типунить... Короче, разубедите или поддержите меня — я в этой теме новичок.
May 14, 2024
Пых
Дмитрий Стогов одобрил мой PR! На текущий момент RFC набрал 16 голосов "за" и 2 "против".
Официально объявляю свой RFC принятым!

Не буду ждать утра, чтобы сообщить, что я только что закрыл голосование на отметке в 25 голосов против 4. Это означает, что в PHP 8.4 мы с вами сможем писать new без скобок! Осталось только дождаться мёрджа PR в мастер.

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

Всем огромное спасибо за поддержку!
May 24, 2024
Пых
Официально объявляю свой RFC принятым! Не буду ждать утра, чтобы сообщить, что я только что закрыл голосование на отметке в 25 голосов против 4. Это означает, что в PHP 8.4 мы с вами сможем писать new без скобок! Осталось только дождаться мёрджа PR в мастер.…
🎉 Merged!

После исправления косяка, замеченного зорким глазом Никиты Попова, мой PR был окончательно одобрен и наконец-то попал в master! У них там как-то странно это происходит — через отдельный commit и закрытый PR, хотя у меня во всех проектах на GitHub аналогичный squash + rebase по кнопке даёт фиолетовый статус "merged", а не красный "closed". Но не суть.

Тем временем я закинул в internals ещё одну идею. Я предложил вынести методы ArrayAccess::offsetExists, offsetGet в отдельный интерфейс с рабочим названием ArrayAccessRead, чтобы можно было делать иммутабельные коллекции, поддерживающие $object['key'] синтаксис только в режиме чтения. Но выяснилось, что уже есть драфт отличного RFC, который предлагает куда более глубокое переосмысление кривого ArrayAccess. Надеюсь, что он тоже попадёт в 8.4, а я пока подумаю над чем-то ещё. 🍸
Please open Telegram to view this post
VIEW IN TELEGRAM
May 28, 2024
🍻 Пишем на PHP и не теряем память. It even works underwater!

В этот четверг в 19:00 на Автозаводской Таганке пройдёт митап BeerPHP, посвящённый производительному PHP.

Максим Хасанов расскажет про RoadRunner, Алексей Сидоркин про Swoole, а у меня будет секция про память. Обсудим, откуда берутся утечки и как подготовить код для запуска в неумирающих рантаймах.

Только оффлайн, без трансляции и записи. Если ты в Москве, регистрируйся и приходи!

https://beerphp.ru/
Please open Telegram to view this post
VIEW IN TELEGRAM
June 3, 2024
🐘 С днём рождения, PHP!

К 29-ому дню рождения PHP Рома Пронский опубликовал ролик, в котором он скомпилировал и запустил первую версию языка!

https://youtu.be/0BPExYh5Anw

И ещё несколько ссылок для любознательных:
интервью с Расмусом про то, как он изобрёл PHP,
статья Артёма Украинского про PHP 1 на Хабре,
музей PHP.
Please open Telegram to view this post
VIEW IN TELEGRAM
June 10, 2024
📹 Стримкаст про типы в PHP

Завтра (12 июня) в 20:00 встретимся с Димой Елисеевым на новом канале Станислава Ракчаева и команды LivePHP "Абстрактный программист", чтобы обсудить типизацию. Ребята подкупили меня фразой "затронем Typhoon". 😂

В общем, заходите, задавайте вопросы, расскажу всё, что знаю.

https://youtu.be/eXfsU-x3bMg

P.S.: Видео с прошедшего BeerPHP обязательно будет, но нужно ещё подождать.
Please open Telegram to view this post
VIEW IN TELEGRAM
June 11, 2024
Разбор резюме от Егора Бугаенко

https://youtu.be/af6bidlat6Q

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

Мои заметки:
• свой документ вместо типовой выгрузки с HH,
• две версии анкеты: сжатая и яркая для технаря, подробная и скучная для HR,
• убрать подработки верстальщиком в интернет-магазине в студенческие времена,
• уникальный опыт на каждом месте работы (так-то все мы рефакторим, пилим фичи и тестируем),
• каждый факт должен подтверждаться ссылкой.

Понравилась следующая мысль. Если я, например, указываю в резюме "Git" и "Symfony 6", то я лукавлю, потому что это неравноценные навыки. Я никогда не просматривал исходники гита, не делал про него докладов, тем более не контрибьютил. Да, я умею в rebase, знаю разные flow, но это само собой разумеется. В то же время у меня суммарно под сотню PR и issue в symfony/symfony, я выступал на SymfonyCon, лично знаком с Core-командой и читаю курс с использованием этого фреймворка. Принципиально другой уровень! Так что в версии резюме для технаря "Git" я уж точно уберу.
June 11, 2024
Пых
BeerPHP сменил локацию! Митап пройдёт в лофте "Событие" на Таганке. Организаторы говорят, что эта площадка значительно лучше. Дата и время те же самые: 6 июня (завтра) в 19:00. Также мне разрешили поделиться с вами записью доклада после мероприятия! ht…
📹 BeerPHP. Пишем на PHP и не теряем память

Наконец-то мы смонтировали ролик! Помимо доклада в нём есть признание в любви к вам, матерные слова и подробная история моего RFC.

Получилось очень задорно! Спасибо организаторам и участникам BeerPHP за такую крутую атмосферу.

https://youtu.be/56I5C0NYjv8
https://vudaltsov.github.io/memory-leaks-slides/
Please open Telegram to view this post
VIEW IN TELEGRAM
June 19, 2024
🎵 Музыкальный стрим!

Хотите музыкальный стрим сегодня с 17 до 18 МСК? Позже, к сожалению, не получится из-за договорённостей с соседями. Сыграю несколько песен на барабанах (можно будет даже заказать), отвечу на ваши вопросы. Посмотрим, что из этого выйдет. 😉

Ставь 🤩, если заглянешь.
Please open Telegram to view this post
VIEW IN TELEGRAM
June 20, 2024
🎙 PHP Russia 2024 быть!

28 и 29 ноября в Москве пройдёт конференция Highload, в рамках которой 16 докладов будут выделены под PHP Russia.

Наилучший способ туда попасть — выступить! Плюшки спикера: куратор из программного комитета для подготовки крутого доклада (например, я), транспорт до Москвы и комфортное проживание, бейдж с полным доступом ко всем залам и зонам Highload. А ещё спикер навсегда вписывает себя и свои идеи в историю PHP. Короче, грех не податься!

Дай угадаю. Если ты раньше не выступал, то сейчас думаешь: "Ой, ну мне не о чем рассказывать, у нас всё стандартно." Поверь, так не бывает! У каждой компании есть ноу-хау, иначе она была бы неприбыльной и ты работал бы в другой. А раз "every company is a software company", то ноу-хау должно быть и в софте. Твоя задача — найти его и заполнить форму. Ещё можно предложить доклад про это самое "стандартно" и как его правильно готовить. Дальше мы уже решим, что впишется в программу, а что нет.

Итак, темы этого года:
• FFI, практическое применение
• AI/ML + PHP
• Производительность
• Devops под PHP
• Лучшие практики
• Новые крутые либы
• Альтернативные рантаймы
• Новые фреймворки
• Опыт больших сложных проектов на PHP

Ждём твой доклад по адресу https://cfp.phprussia.ru/ до 2-ого сентября.
Please open Telegram to view this post
VIEW IN TELEGRAM
June 24, 2024