• 16 марта Вadoo PHP Meetup: тесты и качество кода. Регистрация открыта


      Всем привет!


      Меня зовут Владимир Янц, я активно занимаюсь развитием инфраструктуры тестирования кода в Badoo. С PHP у нас давние и крепкие отношения, и мы с коллегами всячески поддерживаем сообщество.


      Нас все спрашивали: “Когда же уже, когда?” — и вот оно.


      16 марта приглашаем на весенний Badoo PHP Meetup!


      Вторую встречу мы решили посвятить автотестам для PHP-разработчика. Тема будет интересна всем PHP-кам, которые самостоятельно тестируют свой код, и хотят максимально улучшить его качество. Опытным автотестировщикам тоже должно быть полезно, так что welcome!


      Обещаем только реальные кейсы из практики (как пишут автотесты), дискуссию о важном (о качестве кода, естественно) и живое обсуждение каждого доклада. Времени пообщаться у нас целый день (суббота) и даже вечер — желающих захватим с собой на afterparty.


      Первый доклад в 12:00. Событие бесплатное, только пожалуйста, не забудьте зарегистрироваться здесь и дождаться подтверждения.


      Читать дальше →
    • О статическом анализе начистоту

        Последнее время все чаще говорят о статическом анализе как одном из важных средств обеспечения качества разрабатываемых программных продуктов, особенно с точки зрения безопасности. Статический анализ позволяет находить уязвимости и другие ошибки, его можно использовать в процессе разработки, интегрируя в настроенные процессы. Однако в связи с его применением возникает много вопросов. Чем отличаются платные и бесплатные инструменты? Почему недостаточно использовать линтер? В конце концов, при чем тут статистика? Попробуем разобраться.


        Читать дальше →
        • +31
        • 3,8k
        • 2
      • PHP для начинающих. Обработка ошибок

        • Tutorial
        image

        Не совершает ошибок только тот, кто ничего не делает, и мы тому пример — сидим и трудимся не покладая рук, читаем Хабр :)

        В этой статье я поведу свой рассказа об ошибках в PHP, и о том как их обуздать.
        Читать дальше →
      • Как я получил работу с зарплатой 300 000 долларов в Кремниевой долине

        • Перевод
        В конце января мы публиковали перевод на тему «Как я успешно прошел шесть собеседований в Кремниевой долине». Пришло время поделиться продолжением, где речь пойдет о более животрепещущей теме — о деньгах и о том, как получить больше.

        «В течение недели мне предложили должность инженера-программиста в Google, Facebook, Amazon, Apple, LinkedIn и Yelp. Вот как я проходил у них собеседование.


        Что если я скажу вам… что собеседования не так страшны, как кажется?
        Читать дальше →
      • Состоялся релиз Kali Linux 2019.1

          image

           
          Состоялся rolling-release Kali Linux 2019.1, который содержит множество обновлений: обновленные пакеты, обновленное ядро 4.19.13, обновленные инструменты, а также 5 версию знаменитого фреймворка Metasploit.


          Kali Linux представляет собой дистрибутив, содержащий множество утилит для проведения тестирования на проникновение — от анализа уязвимостей веб-приложений до взлома сетей и сервисов и закрепления в системе. Ранее этот дистрибутив был известен под названием Backtrack.

          Читать дальше →
        • Жизненный цикл статьи на Хабре: пишем хабрапарсер

            Привет Хабр!

            Многие постоянные читатели и авторы сайта наверное задумывались о том, какой жизненный цикл имеют опубликованные здесь статьи. И хотя интуитивно это и так более-менее ясно (очевидно например, что статья на первой странице имеет максимальное число просмотров), но сколько конкретно?



            Для сбора статистики воспользуемся Python, Pandas, Matplotlib и Raspberry Pi.

            Тех кому интересно, что из этого получилось, прошу под кат.
            Читать дальше →
          • Массовый взлом ВКонтакте [XSS-червь]


               
              В функционале социальной сети Вконтакте обнаружен и успешно эксплуатировался опасный баг — хранимая XSS с функционалом сетевого червя.


              В данный момент уязвимость устранена.

              Читать дальше →
            • PHP-Дайджест № 149 (28 января – 11 февраля 2019)


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

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


                Читать дальше →
              • Чек-лист: что нужно было делать до того, как запускать микросервисы в prod

                  Эта статья содержит краткую выжимку из моего собственного опыта и опыта моих коллег, с которыми мне днями и ночами доводилось разгребать инциденты. И многих инцидентов не возникло бы никогда, если бы всеми любимые микросервисы были написаны хотя бы немного аккуратнее.


                  К сожалению, некоторые невысокие программисты всерьёз полагают, что Dockerfile с какой-нибудь вообще любой командой внутри — это уже сам по себе микросервис и его можно деплоить хоть сейчас. Докеры крутятся, лавешка мутится. Такой подход оборачивается проблемами начиная с падения производительности, невозможностью отладки и отказами обслуживания и заканчивая кошмарным сном под названием Data Inconsistency.


                  Если вы ощущаете, что пришло время запустить ещё одну аппку в Kubernetes/ECS/whatever, то мне есть чем вам возразить.


                  English version is also available.

                  Читать дальше →
                • Liveprof покажет, когда и почему менялась производительность вашего PHP-приложения



                    Привет, Хабр! Меня зовут Тимур Шагиахметов, я PHP-разработчик в Badoo.

                    Производительность приложения — один из важнейших критериев качества работы программиста. В вопросах оптимизации PHP-приложений помощником является профайлер.

                    Недавно мы рассказывали о том, какими инструментами пользуемся для профилирования. Напомню: одним из инструментов для анализа производительности, когда непонятно, какие части кода повлияли больше всего на увеличение времени формирования ответа, является XHProf. Это расширение для PHP, которое позволяет профилировать код на боевом сервере и впоследствии  улучшать его.

                    Но хотелось бы ещё иметь историю изменения производительности, чтобы можно было отследить, что и когда повлияло на её ухудшение, не так ли? Для этого около года назад мы разработали Liveprof — инструмент для автоматического профилирования всех запросов с интерфейсом для анализа изменения производительности приложения.

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

                    В этой статье я расскажу о деталях реализации и особенностях использования этого инструмента.
                    Читать дальше →
                    • +84
                    • 9,7k
                    • 6
                  • Что почитать по PHP на русском?

                      image

                      PHP — один из самых популярных языков программирования. А ещё это язык, для изучения которого не так просто найти качественную книгу. Что ж, мы вместе с командой GeekBrains заглянем в интернет-магазин и посмотрим, что стоящего можно найти сегодня по PHP на русском языке.
                      Читать дальше →
                    • Yealink Meeting Server 2.0 — новые возможности видеоконференцсвязи

                      • Tutorial
                      В прошлой статье: Yealink Meeting Server — комплексное решение для видеоконференцсвязи мы описали функционал первой версии Yealink Meeting Server (далее YMS), её возможности и структуру. В результате, мы получили от Вас множество запросов на тестирование этого продукта, часть которых выросли в комплексные проекты по созданию или модернизации ВКС-инфраструктуры.
                      Наиболее часто встречающийся сценарий предполагал замену прежнего MCU на сервер YMS, при сохранении существующего парка терминальных устройств, а расширение с помощью терминалов Yealink.

                      Основных причин тому три:

                      1. Масштабируемость существующего MCU невозможна или неоправданно дорога.
                      2. «Накопленный долг» за техническую поддержку соизмерим со стоимостью современного ВКС-решения «под ключ».
                      3. Производитель уходит с рынка и поддержка перестаёт осуществляться вообще.

                      Многие из Вас, кто сталкивался с модернизацией Polycom, например, или поддержкой LifeSize, поймут о чём идёт речь.

                      Новый функционал Yealink Meeting Server 2.0, а также обновление модельного ряда терминальных клиентов Yealink не позволяет уместить всю информацию в рамках одной статьи. Поэтому я планирую сделать серию небольших публикаций на следующие темы:

                      • Обзор YMS 2.0
                      • Интеграция YMS и S4B
                      • Каскадирование серверов YMS
                      • Новые терминалы Yealink
                      • Многокамерное решение для крупных конференц-залов
                      Эта статья посвящена первой теме - обзору YMS 2.0
                      • +16
                      • 1,5k
                      • 9
                    • SITIS CTF: как тюлень помог CTF выиграть



                        27 января 2019 года состоялось мероприятие SITIS CTF — соревнование по информационной безопасности для школьников и студентов техникумов. В турнире приняли участие около 80 молодых специалистов и один тюлень. Игра проводилась в офисе компании «Инфосистемы Джет», организатором заданий и технической площадки выступил молодой коллектив SITIS.

                        Узнать про тюленя
                      • JSON API – работаем по спецификации

                          В последнее время веб-разработка разделилась. Теперь мы все не full-stack программисты — мы фронтендеры и бэкендеры. А самое сложное в этом, как и везде, это проблема взаимодействия и интеграции.

                          Фронтенд с бэкендом взаимодействуют через API. И от того, какой это API, насколько хорошо или плохо бэкенд и фронтенд договорились между собой, зависит весь результат разработки. Если мы все вместе станем обсуждать, как сделать паджинацию, и потратим на её переделывание целый день, то можем и не добраться до бизнес-задач.

                          Чтобы не буксовать и не разводить холивары по поводу названия переменных, нужна хорошая спецификация. Давайте поговорим о том, какой она должны быть, чтобы всем жилось легче. Заодно станем экспертами по велосипедным сараям.


                          Читать дальше →
                        • PHP-Дайджест № 148 (14 – 28 января 2019)


                            Свежая подборка со ссылками на новости и материалы. В выпуске: взломан репозиторий PEAR, о будущем Xdebug, конференция PHP Russia 2019, свежие релизы, RFC предложения из PHP Internals, порция полезных инструментов, и многое другое.

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


                            Читать дальше →
                          • Один в поле не воин. Путь до эффективной командной работы

                              Команда — это группа людей, которые вместе двигаются к общей цели, распределяют между собой задачи и ответственность за конкретный результат. Команды создаются, чтобы решать задачи, которые один человек выполнить не сможет. Эффективная команда достигает цели за минимальный срок с минимальными затратами.

                              Собрать несколько человек и сказать: «Теперь вы команда, ждем от вас результата», не получится. Людей нужно организовать, дать им вменяемую цель, мотивацию и решать возникающие проблемы.



                              Как раз об этом расшифровка доклада Евгения Федореева на TeamLead Conf. В докладе Евгений поэтапно описал процесс организации эффективной команды разработки в Banki.ru: про найм, общение, обмен знаниями и развитие разработчиков и тестировщиков внутри коллектива и отдела.


                              О спикере: Евгений Федореев (hardj) занимается веб-разработкой 15 лет, их них 6 — в позиции тимлида, а сейчас руководит направлением разработки новых проектов Banki.ru.
                              Читать дальше →
                              • +30
                              • 5,4k
                              • 6
                            • Moscow Python Conf++ 2019 — первая конференция, где мы готовим часть спикеров с нуля сами



                                «Если хочешь сделать что-то хорошо — сделай это сам». 5 апреля 2019 года мы проводим 4-ю Moscow Python Conf, и я решил провести странный эксперимент: посмотреть, что будет, если перевернуть подготовку докладов с ног на голову.

                                Как обычно делается — открывается Call for Papers (вот он, открыт, ничего с ним не случилось), месяца полтора-два организаторы уговаривают топовых спикеров предложить доклады, те отбиваются работой и семьей, а затем из сотни-другой поступивших докладов выбирается несколько десятков в программу, и все выдыхают. Хороший способ, с одним ма-а-а-аленьким недостатком: много случайностей.

                                Не факт, что даже опытный спикер сможет сделать сильный доклад по предложенной теме. «Активные» спикеры в известных компаниях могут быть заняты или хотеть на другую конференцию. Много интересных тем может пройти мимо просто потому, что десять человек программного комитета не знали про огромный клубок Python в недрах IVI.ru и никто им не написал.

                                Я решил попробовать пойти по пути Goblin Slayer и не кидать кубиков вообще: сам приходить в гости к компаниям, сам проводить интервью, выбирать темы и с нуля готовить спикеров. Видели бы вы их глаза от такого предложения… Фоток не будет, но под катом расскажу что получилось.
                                Читать дальше →
                              • VDS сервер в Амстердаме за 150 руб/мес

                                  image

                                  В связи с апгрейдом оборудования в нашем дата-центре в Амстердаме, мы решили сделать очень выгодный промо тариф виртуального сервера, который отлично под организацию небольших сервисов, а так же VPN. Тариф остается по такой стоимости на неограниченный срок.*

                                  Условия:


                                  1. Тариф доступен для заказа на 1000 виртуальных машин, успейте заказать свой мини-сервер, пока это не сделал кто-то другой.
                                  2. *Тариф, подключенный по акции остается по такой стоимости на неограниченный срок.

                                  Читать дальше →