PHP
История разработки фасетного поиска средствами PHP

Как экспериментальный Pet Project дошел до production и на что способны современные версии языка PHP. Немного о проблематике фасетного поиска в части построения агрегатов.
Если ваша первая реакция: «Почему не на Sphinx/ElasticSearch/etc?», не торопитесь с выводами. Воспринимайте изложенное как интересный исследовательский опыт в области возможностей языка и его оптимизаций.
Спойлер: пришлось даже написать порт на GoLang, чтобы лучше понять пути оптимизации кода.
Стоит ли учить PHP в 2022 году

IT-индустрия – динамичная сфера, где новые технологии и решения могут кардинально изменять структуру рынка, что влияет на популярность того или иного стека. Также IT-рынок подвержен субъективному хайпу, когда на какие-то технологии и языки программирования обращают чрезмерное внимание без объективных предпосылок к этому. Все это по итогу влияет на востребованность специалистов по конкретному языку, работающих на конкретной технологии, на определенной зарплатной вилке.
В этой статье я поделюсь своим мнением насчет востребованности PHP, как современного языка программирования – актуален ли он на 2022 год или нет.Что из себя представляет PHP
Обычно при обсуждении языка программирования приводят его сильные стороны, поэтому я буду следовать традиции и расскажу, почему PHP – это клевый и современный язык программирования.
Отличная производительность. Команда CORE PHP разработчиков выполнила гигантскую работу по оптимизации PHP и сделала его более производительным. Так, например, в своей статье Дмитрий Стогов приводит бенчмарк для версии PHP 7.0, где демонстрируется, что PHP обходит по производительности своих конкурентов, таких как Python и Ruby, и даже не сильно отстает от Java с выключенным JIT.
Каким 2021 запомнится PHP-сообществу?

Громкие уходы и обещанные релизы, полезные статьи и видео, крутые инструменты. Собираем картину уходящего года глазам сообщества во втором ежегодном опросе. Найди 5 минут, чтобы подвести итоги своего PHP-года — подробности под катом.
Сам себе нотариус. Используем OpenSSH для подписи файлов и TLS для нотариального заверения веб-страниц

Если нужно подписать файл, чтобы гарантировать его аутентичность, что мы делаем? Старый способ — запустить PGP и сгенерировать подпись, используя команду
--sign
. Цифровая подпись удостоверяет создателя и дату создания документа. Если документ будет как-то изменён, то проверка цифровой подписи это покажет. Одновременно нужно опубликовать в открытом доступе свой публичный ключ, чтобы любой желающий мог проверить подпись.Но использовать PGP — не лучшая идея. Есть варианты получше. Например, теперь подписывать документы/файлы можно с помощью обычной утилиты OpenSSH.
Вообще, ключ SSH — очень удобная штука. Не только для подписи текстов и коммитов в Git, но и для авторизации на сайтах. А также для шифрования сообщений, которые сможет прочитать только один человек.
Что вы читали и комментировали в этом году

Привет! До Нового года еще полторы недели, но мы решили подвести небольшие итоги уже сегодня. Во-первых, вряд ли в саму новогоднюю ночь вы будете читать подобный пост. Во-вторых, ещё менее вероятно, что 30 декабря мы бы осилили выгрузить статистику, чтобы 31-го написать пост. Так что — держите.
Самые читаемые посты за год
Disclaimer. Мы не стали включать в топ самых читаемых постов материалы от нашей редакции и из корпоративных блогов.
PS Но отдельная статистика по корпоративным блогам и редакции тоже есть в посте.
Повышаем производительность файлового I/O в JVM на Linux

Все кто хоть раз касался разработки I/O интенсивных приложений, наверное, задумывался о повышении их производительности. Особенно когда у проекта много внешних хранилищ и они находятся по всему миру. Давайте разберем какие есть инструменты с их плюсами и минусами и как их лучше использовать на примере конкретного проекта, в котором принимал участие Дмитрий Бундин, старший Big Data-разработчик в Grid Dynamics.
PHP Дайджест № 217 (1 – 13 декабря 2021)

Подборка свежих новостей и материалов из мира PHP.
В выпуске: PHP теперь использует GitHub для трекинга багов; вышел PhpStorm 2021.3; закончена поддержка PHP 7.3, а 7.4 — в режиме только секьюрити фиксов; для PHP 8.2 снова обсуждается перегрузка операторов — теперь с новым ключевым словом.
Также в выпуске полезные статьи, пачка инструментов, видео и другие новости сообщества.
Приятного чтения!
Строим эффективный сетевой обмен в PHP-микросервисах

Микросервисы сейчас — это новый черный. Все больше и больше компаний переходят именно на микросервисную архитектуру. И при переходе ловят самые разные ошибки. Самая популярная происходит из-за того, что люди просто не готовы к тому, что их приложения начинают активно использовать сеть. Потому что IPC и RPC-запросы — это абсолютно разные вещи.
Я техлид в команде Авито в проекте SLA. Сегодня расскажу, как мы оптимизировали сетевые вызовы, чтобы избежать проблем с сетью при переходе в микросервисный мир. Разговор будет про оптимизацию CURL-запросов, деградацию сервисов и FAIL-FAST-подходы.
Самые заметные изменения языка php за последние годы

Я начинал работать с php, когда еще не потерял популярность его 4 выпуск, с тех пор произошли огромные изменения. На мой взгляд, последние несколько лет преобразили разработку на нем. Кстати php продолжает быть серьезно востребованным, например, сейчас “Рексофт” развивает на нем несколько проектов. В одном из них работаю и я. Но перейдем к делу. Делюсь с вами самыми интересными изменениями в php, прошедшими с 5 до версии 8.1.
Одним из самых распространенных классов в веб-разработке я бы назвал сущность User, предназначенную для работы с пользователями. В парадигме MVC ее можно назвать моделью пользователя, которая хранит данные (свойства) и предоставляет доступ к ряду методов работы с ними, а также бизнес-логику, связанную с областью применения класса. На примере такого класса я и хочу посмотреть сам и показать тебе, читатель, как изменился язык php за последнии годы.
Для удобного изменения кода, и чтобы в дальнейшем проще было отслеживать, что в каком порядке менялось, я создал репозиторий на гитхаб. Ссылка на репозиторий: https://github.com/ZhukMax/php-evo. Отразил в коммитах каждый шаг, который ниже постараюсь подробно описать.
Вышел PhpStorm 2021.3

В этом релизе мы полностью поддержали PHP 8.1, улучшили обработку дженериков, реализовали drag-and-drop для перемещения классов и пространств имен, обновили HTTP-клиент, повысили удобство процесса развертывания и управления версиями, а также добавили новые возможности удаленной разработки.
Под катом подробный разбор всех изменений и новых возможностей с кучей гифок.
Скачать PhpStorm можно на сайте или через приложение Toolbox App.
Как и раньше, студентам, преподавателям и тем, кто занимается опенсорс-проектами, JetBrains предоставляет бесплатные лицензии. Стартапам доступна скидка 50%.
Новый бум производства чипов «made in America»

Производители потребительской электроники уже год страдают от растущего дефицита чипов. Во время пандемии возрос спрос на смартфоны, ноутбуки, настольные компьютеры, «умные» телевизоры и устройства, подключенные к интернету. Нехватка компьютерных микросхем больно ударила по таким отраслям, как автопроизводство и производство медицинского оборудования.
На данный момент ведущими производителями полупроводников являются Taiwan Semiconductor Manufacturing Company (TSMC) и Samsung. Первая занимает 54% рынка, вторая — 17%.
Сенат Конгресса США летом 2021 г. одобрил законопроект о выделении из бюджета 250 млрд. долл. на решение проблемы с нехваткой микрочипов. 52 млрд долл. ушли на развитие производства полупроводников в стране для «борьбы с зависимостью от китайских компаний и технологий».
Многие штаты и города в Америке увидели в этом для себя возможность того, что усилия по резкому увеличению производства микросхем в Соединенных Штатах приведут к появлению завода по производству микросхем на их «заднем дворе». Один из таких городов — Тейлор, в штате Техас, с населением 17 000 человек, расположенный в 40 минутах езды к северо-востоку от Остина. Власти штата и города заполучили завод Samsung на 17 миллиардов долларов, который компания планирует построить в США в начале следующего года.
А Intel в сентябре начала строительство двух заводов в Аризоне и объявит о месте планируемого производственного кампуса к концу года.
Уникальная ВКС-камера от Yealink — оптимальное решение для ZOOM/Skype/Teams

В этой статье речь пойдёт о PTZ-камере Yealink UVC84, которая имеет разрешение 4K, 12-кратное оптическое увеличение и беспрецедентные возможности по интеграции.
Прошло немало лет с тех пор, как Yealink зарекомендовал себя в роли производителя качественных систем видеоконференцсвязи. Аппаратные SIP/H.323-терминалы Yealink стали достойной альтернативой решений Polycom, Cisco и прочих кодеков ВКС.
В совокупности с собственным программным решением Yealink Meeting Server, терминалы Yealink обеспечивают оптимальный баланс по стоимости и функционалу системы видеоконференцсвязи.
Но, за последние 2 года рынок видео коммуникаций ещё больше развернулся в сторону программных терминальных решений, использующих в качестве клиента обычный персональный компьютер. Для таких решений, как Skype, ZOOM, Teams и прочих облачных сервисов, как правило требуется USB-периферия, а не SIP/H.323-кодеки.
Для удовлетворения этой потребности рынка Yealink начал расширять модельный ряд своих решений сразу в трёх направлениях:
Терминалы "из коробки" для Teams и ZOOM
Универсальные терминалы SIP/H.323 + USB-режим
Камеры и спикерфоны с USB-подключением для ПК
О моноблоках для Teams и ZOOM я расскажу в следующей статье. Эти решения включают в себя микрофонный массив, динамики, камеру с автоматическим наведением на докладчика и встроенный программный клиент Teams или ZOOM, в зависимости от модели. Управление терминалом и конференцией происходит или с помощью пульта дистанционного управления, или при помощи сенсорной панели.
Универсальным терминалам, работающим по протоколам SIP или H.323, но имеющим возможность превращаться в 1 клик в USB-камеру/микрофон/динамик для ПК, уже посвящена целая статья Работа SIP/H.323-терминала ВКС с ZOOM и Skype в USB-режиме для ПК
В этой статье мы остановимся на третьем направлении решений Yealink: USB-периферия. В частности нас интересует камера Yealink UVC84.
PHP Дайджест № 216 (15 – 30 ноября 2021)

Подборка свежих новостей и материалов из мира PHP.
В выпуске: вышел PHP 8.1, создана организация PHP Foundation с целью развития и поддержки PHP, критическая уязвимость в doctrine/dbal, в PHP 8.2 будут объявлены устаревшими динамические свойства, вышли Symfony 6 и Symfony 5.4.
Также в выпуске полезные статьи, видео и другие новости сообщества.
Приятного чтения!
Больше чем ZOOM: мессенджер, видеоконференцсвязь и стенограмма в одном решении для видеоконференцсвязи IVA MCU
Резидент ОЭЗ «Иннополис» компания IVA Technologies разрабатывает телекоммуникационное оборудование и программное обеспечение для унифицированных коммуникаций.
В этой статье расскажем, за счёт каких возможностей IVA MCU упрощает онлайн-взаимодействие, что нового умеет платформа и почему стоит выбрать именно этот сервис для удалённого общения в деловых и образовательных целях.
IVA MCU - это программный сервер ВКС с функционалом унифицированных коммуникаций, предназначенный для защищенного взаимодействия через видеосвязь и мессенджер IVA Connect. Система поддерживает быстрые звонки, создание виртуальных комнат, индивидуальные настройки для мероприятий, а также демонстрацию рабочего стола и совместную работу с файлами и документами.
Унифицированные коммуникации подойдут для организации в онлайн-режиме переговоров, совещаний, деловых встреч, собеседований, планерок, дистанционных занятий и вебинаров, лекций и семинаров, лабораторных и экзаменов.
В качестве клиентских устройств сервер IVA поддерживает:
- Аппаратные SIP/H.323-терминалы
- Программные клиенты Windows, MacOS и Linux
- Мобильные устройства на Android и iOS
- Работа через браузер по WebRTC
- Работа через браузер по FLV over HTTP
Основными особенностями IVA MCU являются: поддержка распознавания речи и протоколирования мероприятий, видео звонки через приватные и групповые чаты, а также широкие возможности управления правами и раскладками пользователей.
Однопоточный JavaScript и многопоточная Java: что быстрее?

Асинхронное выполнение на Java и JavaScript
При необходимости в JavaScript можно запускать дополнительные потоки. Но обычно в Node.js или в браузерах весь код на JavaScript выполняется в одном потоке. В браузерах один и тот же поток рендерит содержимое веб-страницы на экран. По сути, один поток выполнения занимается всеми задачами, потому что приложения JavaScript пользуются преимуществами асинхронного выполнения. Для асинхронного выполнения задача помещается в очередь задач. Задачи из очереди одна за другой выполняются единственным потоком. Например, вторая строка кода выполняет планирование асинхронной задачи, которая запускается после завершения текущей задачи:
console.log("1");
setTimeout(()=>console.log("2"));
console.log("3");
Результатом работы кода будет
1 3 2
.В Java API под асинхронным выполнением обычно подразумевается, что задача выполняется в новом выделенном потоке. Например, представленный ниже код при помощи метода supplyAsync() планирует асинхронную задачу:
System.out.println("current thread: " + Thread.currentThread().getName());
var future = CompletableFuture.supplyAsync(() -> Thread.currentThread().getName());
System.out.println("current thread: " + Thread.currentThread().getName());
System.out.println("task thread: " + future.get());
Результат работы программы показывает, что текущий поток создал новый поток для выполнения задачи:
current thread: main
current thread: main
task thread: ForkJoinPool.commonPool-worker-1
Проблема множественных потоков заключается в том, что Java runtime не может создавать бесконечное их количество. Когда все запущенные потоки ожидают, а новые потоки создать нельзя, приложение тоже ничего не будет делать.
Regex for lazy developers

Регулярные выражения для ленивых людей?!
Regex – это модуль вашего языка программирования который позволяет работать со сложными и большими строками просто! Давайте разбираться в них вместе. Приятного прочтения ;)
PHP Дайджест № 215 (1 – 15 ноября 2021)

Подборка свежих новостей и материалов из мира PHP.
В выпуске: последний релиз кандидат PHP 8.1 перед финальным релизом, бенчмарки PHP 8.1; в PHP 8.2 планируется задепрекейтить динамические свойства — добро или зло?; про перенос багов с bugs.php.net на GitHub; немного обновлен PSR-16.
Также в выпуске полезные статьи, видео и другие новости сообщества.
Приятного чтения!
Сделать статический анализ умным — полдела, потом его надо делать глупым

Одна из проблем статического анализа в том, что его легко сделать умнее, чем надо. В результате он начинает выдавать предупреждения в таком коде, который человеку кажется нормальным. И так и хочется сказать анализатору «Отстань, зануда! Сильно умный что ли?»
Я в очередной раз почувствовал вкус всего этого, когда работал над поиском константных выражений для Kotlin. Ранее такой анализ был для Java, но для Kotlin он впервые появится только в следующей версии IntelliJ IDEA 2021.3. Инспекция базируется на анализе потока данных и находит в коде выражения, которые всегда равны одному и тому же. Изначально такая инспекция на Java сообщала только о логических выражениях, которые всегда равны true или false. Потом мы осторожно расширили её, и она стала сообщать ещё и о выражениях, которые всегда равны null или 0. Было решено проделать тот же путь для Kotlin.
Три проигрывателя винила в сегменте «до 60 тысяч рублей», на которые вполне можно обратить внимание
Information
- Rating
- Does not participate
- Location
- Харьков, Харьковская обл., Украина
- Registered
- Activity