• Асинхронный PHP и история одного велосипеда

    После выхода PHP7 появилась возможность сравнительно небольшой ценой писать долгоживущие приложения. Для программистов стали доступны такие проекты, как prooph, broadway, tactician, messenger, авторы которых берут на себя решение наиболее частых проблем. Но что если сделать небольшой шаг вперёд, углубившись в вопрос?


    Попробуем разобрать судьбу ещё одного велосипеда, который позволяет реализовать Publish/Subscribe приложение.

    Читать дальше →
  • Гид по докладам PHP Russia 2019

      Всем привет! До единственной профессиональной конференции, сфокусированной на PHP, осталось всего несколько дней. В чате конференции в Telegram участники готовятся к митапам, пишут вопросы, уточняют расписание и обсуждают доклады. Именно поэтому мы решили рассказать про доклады подробнее — провести вас по знаменательным местам конференции. Вместо исторических развалин у нас фреймворки, вместо падающих башен — ООП и бизнес-логика, а соборы заменяют линтеры и анализаторы. Подробности под катом.

      image
      Читать дальше →
    • Исправляем паттерн проектирования — Singleton в PHP

        Недавно я писал о том, как сломать паттерн проектирования — Singleton в PHP. После написания статьи я искал новый вариант реализации паттерна: есть ли способ создать Singleton в PHP, не давая возможности создавать новые экзепляры класса с помощью Closure::bind()?

        Читать дальше →
      • PSR-14 — главное событие в PHP

        • Translation
        В прошлом году PHP-FIG — Группа концепций совместимости PHP, выпустила несколько новых спецификаций. Последняя из них — PSR-14, посвящена диспетчеризации событий. Как и другие PSR, это локальная спецификация, но имеет большое влияние на многие аспекты стандартизации.

        От переводчика: Это перевод первой части целой серии публикаций, в которой Larry (Crell) Garfield, один из членов PHP-FIG, объясняет, что такое PSR-14, на что способен, а на что нет, и как лучше всего использовать его в своих проектах.
        Читать дальше →
      • В ответ на кибератаку Израиль нанёс авиаудар

          image

          Это будет один из наиболее показательных случаев вычисления по IP и применения превентивных мер защиты от кибернападений: Армия обороны Израиля (ЦАХАЛ) нейтрализовала попытку кибератаки, нанеся авиаудары по зданию в секторе Газа, где находилась штаб-квартира хакеров ХАМАС.
          Читать дальше →
        • PHP-Дайджест № 155 (22 апреля – 6 мая 2019)


            Свежая подборка со ссылками на новости и материалы. В выпуске: обновления PHP, Codeception 3.0 и другие релизы, короткие лямбды в PHP 7.4 и обзор свежих RFC-предложений из PHP Internals, порция полезных инструментов, и многое другое.

            Приятного чтения!


            Читать дальше →
          • Что есть что и кто есть кто на рынке защиты от DDoS

              Я на digital рынке с 2008 года, и за это время видел переход от веб-сайтов на Joomla (помните такую? ) до сегодняшнего Интернета с его mobile-first приложениями и сотнями миллионов IoT устройств, подключенных в сеть.
              Атаки в Интернете также за это время неплохо развилиcь :)
              Но рынок защиты от DDoS и используемые операторами технологии защиты от атак остаются все еще достаточно сильно закрытым.
              Расскажу, что узнал про него, поддерживая веб-сайты и интернет-сервисы, находящиеся под непрерывными атаками несколько последних лет.

              image
              Регулярные атаки. 350k req total, 52k req legitimate
              Читать дальше →
            • Ломаем паттерн проектирования — Singleton в PHP

              Одним прекрасным рабочим днём я писал unit-тесты для бизнес-логики на проекте, в котором работаю. Передо мною стояла задача инициализировать некоторые приватные свойства класса определёнными значениями.

              Читать дальше →
            • Я в восторге от IoT

                image
                Я большой фанат «наступившего будущего». С момента появления первых роботизированных кофеен и магазинов без обслуживающего персонала каждый день видится мне как реализовавшиеся грезы об удобном и комфортном мире. Мы долго шли к возможности управлять машиной, домом, своей жизнью с телефона. Было много падений, взломов, утечек личных данных и судов, но вот будущее наступило. И я в восторге.
                Читать дальше →
              • 5 способов деплоя PHP-кода в условиях хайлоада

                  Если бы хайлоад преподавали в школе, в учебнике по этому предмету была бы такая задача. «У соцсети N есть 2 000 серверов, на которых 150 000 файлов объемом по 900 Мб PHP-кода и стейджинг-кластер на 50 машин. На серверы код деплоится 2 раза в день, на стейджинг-кластере код обновляется раз в несколько минут, а еще дополнительно есть „хотфиксы“ — небольшие наборы файлов, которые выкладываются вне очереди на все или на выделенную часть серверов, не дожидаясь полной выкладки. Вопрос: считаются ли такие условия хайлоадом и как в них деплоить? Напишите не менее 5 вариантов деплоя». Про задачник по хайлоаду можем только мечтать, но уже сейчас мы знаем, что Юрий Насретдинов (youROCK) точно бы решил эту задачу и получил «пятерку».


                  На простом решении Юрий не остановился, а дополнительно провел доклад, в котором раскрыл тему понятия «деплой кода», рассказал про классические и альтернативные решения масштабного деплоя кода на PHP, проанализировал их производительность и презентовал самописную систему деплоя MDK.
                  Читать дальше →
                • .NET Core на Linux, DevOps на коне

                    Мы развивали DevOps как могли. Нас было 8 человек, и Вася был самым крутым по Windows. Внезапно Вася ушел, а у меня появилась задача вывести новый проект, который поставляет Windows-разработка. Когда я высыпал на стол весь стек Windows-разработки, то понял, что ситуация — боль…

                    Так начинается история Александра Синчинова на DevOpsConf. Когда из компании ушел ведущий специалист по Windows, Александр задался вопросом, что теперь делать. Переходить на Linux, конечно же! Александр расскажет, как ему удалось создать прецедент и перевести часть Windows разработки на Linux на примере реализованного проекта на 100 000 конечных пользователей.



                    Как легко и непринужденно доставлять проект в RPM, используя TFS, Puppet, Linux .NET core? Как поддерживать версионирование БД проекта, если разработка впервые слышит слова Postgres и Flyway, а дедлайн послезавтра? Как интегрировать с Docker? Как мотивировать .NET-разработчиков отказаться от Windows и смузи в пользу Puppet и Linux? Как решать идеологические конфликты, если обслуживать Windows в продакшн нет ни сил, ни желания, ни ресурсов? Об этом, а также о Web Deploy, тестировании, CI, о практиках использования TFS в существующих проектах, и, конечно, о сломанных костылях и работающих решениях, в расшифровке доклада Александра.
                    Читать дальше →
                  • Так ли сложно начать путь IT-рекрутёра?

                      Приветствую Вас, уважаемые хабровчане!

                      Сегодня пойдет речь о наболевшем + немного разъяснений к этой статье.

                      Начну с того, что в подборе персонала я уже более 11-ти лет. Прошел все стадии становления, от рядового рекрутёра до директора по персоналу. Увидел многое и есть что рассказать.

                      Читать дальше →
                    • PHP-Дайджест № 154 (9 – 21 апреля 2019)


                        Свежая подборка со ссылками на новости и материалы. В выпуске: Zend Framework переходит под крыло Linux Foundation, новости из PHP Internals, порция полезных инструментов, и многое другое.

                        Приятного чтения!


                        Читать дальше →
                      • Как рассадить всех по науке и не превратить кабинет в рассадник ненависти



                          Рано или поздно в жизни большинства команд наступает он — переезд. Вас приводят в чистое пустое помещение, которому предстоит стать местом, где вы будете проводить большую часть своей жизни. Если вы дизайнер, то первым делом придумаете, как развесить картины и поставить цветы, чтобы помещение заиграло новыми красками. Если вы опытный офисный самурай, то сразу наметанным глазом определите наилучшее место и первым заявите на него права. Если вы руководитель отдела, то вас наверняка посетит головная боль по поводу рассадки всех сотрудников. Но если вы при этом возглавляете команду датасайентистов, то монетка Python вам в помощь.
                          Читать дальше →
                        • PHP GR8: повысит ли JIT производительность PHP 8

                          • Translation


                          PHP — один из основных языков разработки в Badoo. В наших дата-центрах тысячи процессорных ядер заняты выполнением миллионов строк кода на PHP. Мы внимательно следим за новинками и активно ищем пути улучшения производительности, так как на наших объёмах даже небольшая оптимизация приводит к существенной экономии ресурсов. Одна из главных новостей в области производительности PHP — появление JIT в восьмой версии языка. Это, безусловно, не могло остаться без нашего внимания, и мы перевели статью о том, что есть JIT, как он будет реализован в PHP, зачем его решили делать и что от него ждать.

                          Если вы не вышли из пещеры или не прибыли из прошлого (в этом случае добро пожаловать), то уже знаете, что в PHP 8 будет JIT: на днях тихо-мирно завершилось голосование, и подавляющее большинство участников высказались за внедрение, так что всё решено.
                           
                          Можно в порыве радости даже изобразить несколько безумных движений как на фото (это, к слову, называется «детройтский JIT»:
                           
                          Читать дальше →
                        • PHP. Фееричная расстановка точек над кавычками


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

                            В данной статье будет всего один бенчмарк, куда же без него, а основной упор сделан на разбор того, как же оно устроено внутри.
                            Читать дальше →
                          • Новый уровень безопасности МФУ: imageRUNNER ADVANCE III



                              С увеличением встроенных функций офисные МФУ давно вышли за рамки тривиального сканирования/печати. Сейчас они превратились в полноценные самостоятельные устройства, интегрированные в высокотехнологичные локальные и глобальные сети, связывающие пользователей и организации не только в пределах одного офиса, но и по всему миру.

                              В этой статье вместе с экспертом по практической информационной безопасности Лукой Сафоновым LukaSafonov рассмотрим основные угрозы для современных офисных МФУ и пути их предотвращения.
                              Читать дальше →
                            • Взлом WPA3: DragonBlood



                                Несмотря на то, что новый стандарт WPA3 еще толком не введен в эксплуатацию, недостатки безопасности в этом протоколе позволяют злоумышленникам взломать пароль Wi-Fi.
                                Читать дальше →
                                • +39
                                • 10.7k
                                • 4
                              • PHP-Дайджест № 153 (25 марта – 8 апреля 2019)


                                  Свежая подборка со ссылками на новости и материалы. В выпуске: принят PSR-14 Event Dispatcher, JIT в PHP 8, тройка RFC-предложений из PHP Internals, порция полезных инструментов, и многое другое.

                                  Приятного чтения!


                                  Читать дальше →
                                  • +65
                                  • 13.8k
                                  • 3
                                • OWASP Russia Meetup — запись выступлений

                                    image

                                    3 апреля при поддержке компании «Инфосистемы Джет» состоялась очередная встреча российского отделения сообщества OWASP, на которой собрались специалисты по информационной безопасности. Запись выступлений спикеров можно посмотреть в представленном ниже видеоролике.
                                    Читать дальше →