Forwarded from Russian Association of Software Architects (Sergey Baranov)
Какая прекрасная штука вот теперь появилась и в MySQL
https://blogs.oracle.com/mysql/post/mysql-82-transparent-readwrite-splitting
https://dev.mysql.com/doc/mysql-router/8.2/en/router-read-write-splitting.html
https://blogs.oracle.com/mysql/post/mysql-82-transparent-readwrite-splitting
https://dev.mysql.com/doc/mysql-router/8.2/en/router-read-write-splitting.html
Oracle
MySQL 8.2 – transparent read/write splitting
In MySQL 8.2, a significant enhancement has been introduced to MySQL Router. This improvement enables MySQL Router to intelligently differentiate between read and write queries and efficiently route them based on their nature.
😁2
Forwarded from PHP of By (Community Org)
42 - это не только ответ на "Главный вопрос жизни, вселенной и вообще", но и порядковый номер митапа PHPofBy, который состоится 19 Декабря в 19.00 (+3).
На завершающем митапе в этом году Игорь Филиппов покажет нам бельгийское кунг-фу и научит готовить Laravel в стиле Spatie
Дмитрий Джумагалиев скомбинирует доклад с воркшопом и научит использовать PACT для контрактного тестирования
Ну а Кирилл Несмеянов покажет, что на самом деле мы не знаем PHP :)
Страница митапа тут: https://wearecommunity.io/events/phpofby-meetup-42
Ссылка на трансляцию тут: https://www.youtube.com/watch?v=lt2jbzTbPxM
Читайте подробное описание, и регистрируйтесь - нам как всегда важно понимать, сколько вас будет :)
На завершающем митапе в этом году Игорь Филиппов покажет нам бельгийское кунг-фу и научит готовить Laravel в стиле Spatie
Дмитрий Джумагалиев скомбинирует доклад с воркшопом и научит использовать PACT для контрактного тестирования
Ну а Кирилл Несмеянов покажет, что на самом деле мы не знаем PHP :)
Страница митапа тут: https://wearecommunity.io/events/phpofby-meetup-42
Ссылка на трансляцию тут: https://www.youtube.com/watch?v=lt2jbzTbPxM
Читайте подробное описание, и регистрируйтесь - нам как всегда важно понимать, сколько вас будет :)
❤9👏1
Заглянул в репозиторий https://github.com/php/php-langspec и обнаружил, что обновлений в master почти нет, а среди веток только PHP-5.6 и PHP-7.0. Выходит у PHP нет актуальной версии спецификации, есть только спека уровня 7.0 (или чуть выше) и набор RFC принятых поверх? 🧐
🤔11
🎄Сегодня (23 дек 2023) в 12:00 GMT+3 (Мск) присоединяйтесь к online митапу: https://www.youtube.com/watch?v=tF9s785SxAM&ab_channel=SkyengTech
YouTube
PHP Community meetup: 4 доклада, апдейты PHP 8.3 и итоги года
Встретимся к концу года, чтобы послушать доклады, подвести итоги и запустить опрос сообщества.
Собрали отличный лайнап:
«PHP 8.3: прогресс или стагнация?» — Валентин Удальцов , автор каналов Пых и PHP Point.
«Готовим Composer» — Александр Макаров…
Собрали отличный лайнап:
«PHP 8.3: прогресс или стагнация?» — Валентин Удальцов , автор каналов Пых и PHP Point.
«Готовим Composer» — Александр Макаров…
👍9🔥4
Forwarded from Alisa Kruglova [MSK -2]
Привет! phpcommunity.ru проводит четвертый ежегодный опрос. По традиции узнаем расклад по версиям языка в командах, фреймворкам, инструментам, лучшим статьям и видео по мнению сообщества. И, конечно, разыграем PHP-слона и другой мерч.
Опрос помогает видеть, как развивается сообщество, и готовить митапы, статьи и конференции по актуальным темам.
Найди 5 минут, чтобы подвести итоги своего PHP-года:
Форму закроем 8 января 2024. Результатами поделимся в конце января.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤4🤮1
Прохожу опрос по итогам 2023 года в PHP-комьюнити (видео, рекомендую смотреть на x1,5 скорости): https://youtu.be/U2ntmKUJa1Y
YouTube
Итоги 2023 в PHP-комьюнити - прохожу опрос
Опрос: https://forms.gle/n9QErGz5iGYrWEzj9
В этом видео упомянул телеграм канал "5 minutes of AI": https://news.1rj.ru/str/en_5minAI
Пятиминутка PHP - подкаст о PHP, DBA, архитектуре, DevOps. https://5minphp.ru
В этом видео упомянул телеграм канал "5 minutes of AI": https://news.1rj.ru/str/en_5minAI
Пятиминутка PHP - подкаст о PHP, DBA, архитектуре, DevOps. https://5minphp.ru
🔥5🤡3
Теперь к серьёзным опросам: наиболее популярная PHP функция в вашем коде в 2023?
Anonymous Poll
16%
getrusage - Gets the current resource usages
10%
strpbrk — Search a string for any of a set of characters
6%
get_html_translation_table — Returns the translation table used by htmlspecialchars and htmlentities
18%
natcasesort — Sort an array using a case insensitive "natural order" algorithm
5%
get_mangled_object_vars — Returns an array of mangled object properties
8%
metaphone — Calculate the metaphone key of a string
26%
similar_text — Calculate the similarity between two strings
10%
easter_date — Get Unix timestamp for midnight on Easter of a given year
13%
frenchtojd — Converts a date from the French Republican Calendar to a Julian Day Count
31%
mb_strimwidth — Get truncated string with specified width
🤯90🤡34👀10🤷♂4🔥4💩2👍1
Есть фрагмент кода, который генерирует набор уведомлений для пользователя.
Каждый вид уведомления формируется своим методом, итого имеем множество методов. Их стало слишком много, пришло время разделить эту кодовую базу на несколько классов.
Первый метод я вынес в отдельный класс вручную.
Далее сформировал инструкцию для AI: "вынеси такой-то метод в отдельный класс, оринетируйся на мой пример..."
Использовал утилиту Aider (https://aider.chat/), в которую зашиты протестированные system и user prompts, также эта утилита умеет отправлять в качестве контекста содержимое файлов исходного кода.
Как выглядел процесс:
- добавление файлов в контекст запроса происходит командой
- далее отправляю основной prompt - нужно подождать ещё около минуты, пока не начнёт генерироваться ответ
- ответ приходит строка за строкой, медленно, наблюдаю в консоли
- как только передача ответа завершилась в дело вступает утилита Aider, которая должна создать новый файл на диске (новый класс) и скорректировать старый код, подставив вызов нового класса. Новый класс был создан без части кода и с обновлением текущего файла не вышло.
Что произошло: ответ от GPT содержал кривой diff, который Aider не смог наложить на существующий исходник. В этом случае в Aider предусмотрена автоматизация: он отправляет новый запрос в OpenAI с просьбой вернуть корректный diff. И опять длительное ожидание.
Это не первая попытка использовать Aider. И каждый раз прихожу к выводу, что это слишком медленно и неудобно.
В следующий раз опишу, как эту же задачу я решал с помощью Aider + локально запущенной модели DeepSeek Coder (https://huggingface.co/TheBloke/deepseek-coder-6.7B-instruct-GGUF) и с помощью GitHub Copilot Chat в PhpStorm.
Каждый вид уведомления формируется своим методом, итого имеем множество методов. Их стало слишком много, пришло время разделить эту кодовую базу на несколько классов.
Первый метод я вынес в отдельный класс вручную.
Далее сформировал инструкцию для AI: "вынеси такой-то метод в отдельный класс, оринетируйся на мой пример..."
Использовал утилиту Aider (https://aider.chat/), в которую зашиты протестированные system и user prompts, также эта утилита умеет отправлять в качестве контекста содержимое файлов исходного кода.
Как выглядел процесс:
- добавление файлов в контекст запроса происходит командой
/add и этот процесс очень медленный, чуть ли не минуту на каждый файл (я добавил два файла = 2 минуты)- далее отправляю основной prompt - нужно подождать ещё около минуты, пока не начнёт генерироваться ответ
- ответ приходит строка за строкой, медленно, наблюдаю в консоли
- как только передача ответа завершилась в дело вступает утилита Aider, которая должна создать новый файл на диске (новый класс) и скорректировать старый код, подставив вызов нового класса. Новый класс был создан без части кода и с обновлением текущего файла не вышло.
Что произошло: ответ от GPT содержал кривой diff, который Aider не смог наложить на существующий исходник. В этом случае в Aider предусмотрена автоматизация: он отправляет новый запрос в OpenAI с просьбой вернуть корректный diff. И опять длительное ожидание.
Это не первая попытка использовать Aider. И каждый раз прихожу к выводу, что это слишком медленно и неудобно.
В следующий раз опишу, как эту же задачу я решал с помощью Aider + локально запущенной модели DeepSeek Coder (https://huggingface.co/TheBloke/deepseek-coder-6.7B-instruct-GGUF) и с помощью GitHub Copilot Chat в PhpStorm.
👍14😁1
Производительность PHP оказалась примерно в 4 раза выше, чем CPython.
Опубликована вторая редакция проекта PLB (Programming Language Benchmark), нацеленного на тестирование производительности решения типовых задач на различных языках программирования. В отличие от первой редакции, опубликованной в 2011 году, новый вариант измеряет производительность кода для умножения матриц и решения задачи расстановки 15-ферзей, а также дополнительно оценивает поиск решений в игре Судоку и определение пересечений двух массивов. Код для тестирования был написан на 20 языках программирования.
https://www.opennet.ru/opennews/art.shtml?num=60384
Опубликована вторая редакция проекта PLB (Programming Language Benchmark), нацеленного на тестирование производительности решения типовых задач на различных языках программирования. В отличие от первой редакции, опубликованной в 2011 году, новый вариант измеряет производительность кода для умножения матриц и решения задачи расстановки 15-ферзей, а также дополнительно оценивает поиск решений в игре Судоку и определение пересечений двух массивов. Код для тестирования был написан на 20 языках программирования.
https://www.opennet.ru/opennews/art.shtml?num=60384
www.opennet.ru
Сравнение эффективности 20 языков программирования
Опубликована вторая редакция проекта PLB (Programming Language Benchmark), нацеленного на тестирование производительности решения типовых задач на различных языках программирования. В отличие от первой редакции, опубликованной в 2011 году, новый вариант измеряет…
🔥32👍6👎2
Я обратил внимание на редактор кода Zed (https://zed.dev)
Написан на Rust, а как мы знаем "всё становится лучше, если написано на Rust"👩💻
Авторы - бывшие разработчики Electron и Atom (помните такой?), которые разочаровались в ставке на веб-технологии в Electron и решили на этот раз всё сделать "правильно"!
Чем-то напоминает историю создателя Node.js, который позже решил переписать с нуля на Rust и получился Deno.
Что я прочитал в блоге Zed.dev в декабре 2023: они решили переписать всё ещё раз! Теперь силы брошены на разработку Zed 2.
Подробнее про редактор Zed на русском:
⁃ https://habr.com/ru/articles/595897/
⁃ https://blog.disonds.com/2023/07/16/zed-vysokoproizvoditielnyi-riedaktor-koda-ot-sozdatieliei-atom/?ysclid=lqyuxpxdry430537471
Написан на Rust, а как мы знаем "всё становится лучше, если написано на Rust"
Авторы - бывшие разработчики Electron и Atom (помните такой?), которые разочаровались в ставке на веб-технологии в Electron и решили на этот раз всё сделать "правильно"!
Чем-то напоминает историю создателя Node.js, который позже решил переписать с нуля на Rust и получился Deno.
Что я прочитал в блоге Zed.dev в декабре 2023: они решили переписать всё ещё раз! Теперь силы брошены на разработку Zed 2.
Подробнее про редактор Zed на русском:
⁃ https://habr.com/ru/articles/595897/
⁃ https://blog.disonds.com/2023/07/16/zed-vysokoproizvoditielnyi-riedaktor-koda-ot-sozdatieliei-atom/?ysclid=lqyuxpxdry430537471
Please open Telegram to view this post
VIEW IN TELEGRAM
Zed
Zed — Love your editor again
Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.
🤡18👍7🤔6❤3👎1
Forwarded from Joomla Feed (Sergey Tolkachyov)
Производительность Joomla на PHP 8.3 достигла показателя в 341 RPS, показав прирост в 30%
Агентство Kinsta 2 января 2024 года обновило данные бенчмарк-тестов популярных CMS и PHP фреймворков. При выборе движков для теста учитываются популярность, примерное количество живых сайтов, доля рынка, тенденции использования, доля в поиске (США).
Участники соревнования
На беговой дорожке рядом оказались:
👩💻 WordPress
👩💻 WooCommerce
👩💻 Laravel
👩💻 Drupal
👩💻 Joomla
👩💻 Symfony
- CodeIgniter
- Craft CMS
- OpenCart
- Statamic
- Typo3
⚠️ Все CMS и фреймворки тестировались на дефолтных настройках. Во всех подобных тестах нужно учитывать, что "тяжесть" формирования дефолтной страницы у всех движков разная: разное количество запросов в базу данных (обычно слабое место в быстродействии сайтов), разное количество различных проверок и т.д. Например в Joomla по умолчанию главная страница - это избранные материалы. Из базы данных идёт выборка материалов со статусом
Все движки тестировались на версиях PHP 8.1, 8.2 и 8.3. Так же некоторые на 7.4.
Также для нагрузочных тестов важен показатель RPS - requests per second. Этот показатель означает запрос к Приложению на генерацию данных без учета разного рода кэша.
🔥 Результаты тестов производительности
👩💻 Joomla
Joomla показала следующие результаты.
Тестируемая версия Joomla: 4.3.3
Тестируемый URL: главная страница
Размер страницы: 8,111,000 байт
Результаты:
- PHP 8.1: 274 req/s
- PHP 8.2: 265 req/s.
- PHP 8.3: 341 req/s.
Таким образом Joomla "из коробки" на PHP 8.3 показала прирост производительности около 30%.
Другие движки
👩💻 Wordpress
Тестировались версии Wordpress 6.4.2 и 6.2.2. Возьмём данные по последней версии, в целом они примерно одинаковые.
Тестируемая версия Wordpress: 6.4.2
Тестируемый URL: главная страница
Размер страницы: 84,257,000 байт
Результаты:
- PHP 7.4: 149 res/s.
- PHP 8.1: 153 req/s.
- PHP 8.2: 158 req/s.
- PHP 8.3: 169 req/s.
👩💻 Laravel
Это PHP-фреймворк, на котором обычно пишут "серьёзные" проекты.
Тестируемая версия Laravel: 10.16.1
Тестируемый URL: главная страница
Размер страницы: 27,514,000 байт
Результаты:
- PHP 8.1: 611 req/s.
- PHP 8.2: 670 req/s.
- PHP 8.3: 925 req/s.
👩💻 Drupal
Тестируемая версия Drupal: 10.11
Тестируемый URL: главная страница
Размер страницы: 19,102,000 байт
Результаты:
- PHP 8.1: 922 req/s.
- PHP 8.2: 941 req/s.
- PHP 8.3: 1432 req/s.
👩💻 Symfony
Также PHP-фреймворк, используемый для бэкенда сайтов и приложений.
Тестируемая версия Symfony: 6.3.0
Тестируемый URL: главная страница
Размер страницы: 559,000 байт
Результаты:
- PHP 8.1: 931 req/s.
- PHP 8.2: 997 req/s.
- PHP 8.3: 1182 req/s.
OpenCart
Специализированный движок для создания интернет-магазинов.
Тестируемая версия OpenCart: 4.0.2.2
Тестируемый URL: главная страница
Размер страницы: 33,014,000 байт
Результаты:
- PHP 8.1: 151 req/s.
- PHP 8.2: 154 req/s.
- PHP 8.3: 164 req/s.
Подробнее
Агентство Kinsta 2 января 2024 года обновило данные бенчмарк-тестов популярных CMS и PHP фреймворков. При выборе движков для теста учитываются популярность, примерное количество живых сайтов, доля рынка, тенденции использования, доля в поиске (США).
Участники соревнования
На беговой дорожке рядом оказались:
👩💻 Symfony
- CodeIgniter
- Craft CMS
- OpenCart
- Statamic
- Typo3
⚠️ Все CMS и фреймворки тестировались на дефолтных настройках. Во всех подобных тестах нужно учитывать, что "тяжесть" формирования дефолтной страницы у всех движков разная: разное количество запросов в базу данных (обычно слабое место в быстродействии сайтов), разное количество различных проверок и т.д. Например в Joomla по умолчанию главная страница - это избранные материалы. Из базы данных идёт выборка материалов со статусом
избранные, происходит проверка прав доступа к материалам, а так же на странице несколько модулей со своими настройками прав доступа, времени начала и окончания публикации и т.д. С виду одинаковая страница на разных движках под капотом означает разное количество работы. Даже смена типа главной страницы на компонент "пустая страница", где нет выборки из бд, проверки прав пользователя и рендера компонента даёт прирост скорости формирования страницы.Все движки тестировались на версиях PHP 8.1, 8.2 и 8.3. Так же некоторые на 7.4.
Также для нагрузочных тестов важен показатель RPS - requests per second. Этот показатель означает запрос к Приложению на генерацию данных без учета разного рода кэша.
🔥 Результаты тестов производительности
Joomla показала следующие результаты.
Тестируемая версия Joomla: 4.3.3
Тестируемый URL: главная страница
Размер страницы: 8,111,000 байт
Результаты:
- PHP 8.1: 274 req/s
- PHP 8.2: 265 req/s.
- PHP 8.3: 341 req/s.
Таким образом Joomla "из коробки" на PHP 8.3 показала прирост производительности около 30%.
Другие движки
Тестировались версии Wordpress 6.4.2 и 6.2.2. Возьмём данные по последней версии, в целом они примерно одинаковые.
Тестируемая версия Wordpress: 6.4.2
Тестируемый URL: главная страница
Размер страницы: 84,257,000 байт
Результаты:
- PHP 7.4: 149 res/s.
- PHP 8.1: 153 req/s.
- PHP 8.2: 158 req/s.
- PHP 8.3: 169 req/s.
Это PHP-фреймворк, на котором обычно пишут "серьёзные" проекты.
Тестируемая версия Laravel: 10.16.1
Тестируемый URL: главная страница
Размер страницы: 27,514,000 байт
Результаты:
- PHP 8.1: 611 req/s.
- PHP 8.2: 670 req/s.
- PHP 8.3: 925 req/s.
Тестируемая версия Drupal: 10.11
Тестируемый URL: главная страница
Размер страницы: 19,102,000 байт
Результаты:
- PHP 8.1: 922 req/s.
- PHP 8.2: 941 req/s.
- PHP 8.3: 1432 req/s.
Также PHP-фреймворк, используемый для бэкенда сайтов и приложений.
Тестируемая версия Symfony: 6.3.0
Тестируемый URL: главная страница
Размер страницы: 559,000 байт
Результаты:
- PHP 8.1: 931 req/s.
- PHP 8.2: 997 req/s.
- PHP 8.3: 1182 req/s.
OpenCart
Специализированный движок для создания интернет-магазинов.
Тестируемая версия OpenCart: 4.0.2.2
Тестируемый URL: главная страница
Размер страницы: 33,014,000 байт
Результаты:
- PHP 8.1: 151 req/s.
- PHP 8.2: 154 req/s.
- PHP 8.3: 164 req/s.
Подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM
Kinsta®
PHP 8.5 benchmarks: The state of PHP performance across major CMSs and frameworks
An in-depth look at performance benchmarks for various PHP CMS & frameworks to see how different PHP 8.5 stacks up against 8.4, 8.3 and 8.2.
👍34🤨15👎4🔥4🤔4🤮2
Forwarded from OpenNews (HK-47)
Рейтинг языков программирования TIOBE за январь 2024 года
Компания TIOBE Software опубликовала январский рейтинг популярности языков программирования, в котором по сравнению с январём 2023 года выделяется перемещение языка JavaScript с седьмого на шестое место, языка PHP с 10 на 7 место, Scratch с 20 на 10 место (рост популярности на 0.83%) , Go - c 12 на 11, Fortran - с 27 на 12 (+0.64%), Object Pascal - c 17 на 13, MathLab - с 15 на 14, Kotlin - с 25 на 17 и Cobol - с 31 на 20. Языком года назван C#, который сохранил 5 место, но стал лидером по росту популярности (+1.43%).
Компания TIOBE Software опубликовала январский рейтинг популярности языков программирования, в котором по сравнению с январём 2023 года выделяется перемещение языка JavaScript с седьмого на шестое место, языка PHP с 10 на 7 место, Scratch с 20 на 10 место (рост популярности на 0.83%) , Go - c 12 на 11, Fortran - с 27 на 12 (+0.64%), Object Pascal - c 17 на 13, MathLab - с 15 на 14, Kotlin - с 25 на 17 и Cobol - с 31 на 20. Языком года назван C#, который сохранил 5 место, но стал лидером по росту популярности (+1.43%).
👍20🤔2
Антон Морев показал как он работает на 7 мониторах - я был впечатлён 🤯
Говорит обычно у него с десяток запущенных PhpStorm, пару сотен вкладок в браузере, множество docker контейнеров, больше всего не любит перезагружать комьютер - перезагрузка отнимает много времени.
2 видеокарты, 96 Гб оперативки, 5,5 Тб SSD, чтобы не разбирать хлам файлов просто докупает новые SSD по терабайту - моё почтение!
https://youtu.be/z8pnoBh9o9s?si=RA5g--7htjT1oNQt
Говорит обычно у него с десяток запущенных PhpStorm, пару сотен вкладок в браузере, множество docker контейнеров, больше всего не любит перезагружать комьютер - перезагрузка отнимает много времени.
2 видеокарты, 96 Гб оперативки, 5,5 Тб SSD, чтобы не разбирать хлам файлов просто докупает новые SSD по терабайту - моё почтение!
https://youtu.be/z8pnoBh9o9s?si=RA5g--7htjT1oNQt
YouTube
7 мониторов - отличное решение для программиста
Решил поделиться тем, как устроена "мониторная" часть моего рабочего места. Я давно работаю на 6 мониторах и, недавно добавился седьмой. Уже есть мысли куда поставить восьмой, но об этом когда-набудь потом:)
В ролике поделился своим путем к 7 мониторам …
В ролике поделился своим путем к 7 мониторам …
🤯49💩36🤪9👍5🤡5😁3❤2🤔1🤮1🥱1🥴1
Тейлор и Ко. возобновляют Laravel Worldwide Meetup (online). Ближайшая встреча 30 января 2024: https://meetup.laravel.com
Laravel
Laravel Worldwide Meetup
Join the official Laravel meetup in the cloud. Learn from familiar faces and new speakers while chatting with fellow Laravel devs.
👍17💩3🤡2👎1
Шаблонизатор Twig 2.0 официально прекратил своё развитие - переходим на Twig 3.0!
Twig 2.0 был выпущен в январе 2017 года, а Twig 3.0 - в ноябре 2019 года - можно считать что Twig 3.0 уже достаточно заматерел.
Symfony 7.0 не будет поддерживать Twig 2.
Что было удалено в ветке 3.0 по сравнению с 2.0: https://twig.symfony.com/doc/2.x/deprecated.html
Twig 2.0 был выпущен в январе 2017 года, а Twig 3.0 - в ноябре 2019 года - можно считать что Twig 3.0 уже достаточно заматерел.
Symfony 7.0 не будет поддерживать Twig 2.
Что было удалено в ветке 3.0 по сравнению с 2.0: https://twig.symfony.com/doc/2.x/deprecated.html
Symfony
Deprecated Features - Documentation - Twig PHP
Twig - The flexible, fast, and secure template engine for PHP
👍11🤡2😱1
Forwarded from Haiku
GPT от Николая Самохвалова про postgres performance https://chat.openai.com/g/g-ZmfkdmXzD-postgresmarathon
ChatGPT
ChatGPT - #PostgresMarathon
Postgres.ai bot that studied the #PostgresMarathon materials (https://gitlab.com/postgres-ai/postgresql-consulting/postgres-howtos/)
👍3🤮2