• Создаем Gatling скрипты с помощью VS Code

    • Перевод

    Перевод статьи подготовлен в преддверии старта курса «Нагрузочное тестирование».





    Предисловие


    Недавно, благодаря комментарию одного из студентов, изучающих мой курс Gatling Fundamentals, я узнал о том, что вы можете создавать Gatling скрипты с помощью Visual Studio Code. Я, честно говоря, понятия не имел, что это возможно, — но был приятно удивлен, обнаружив, насколько хорошо это работает!

    Читать дальше →
  • REST API в Symfony (без FosRestBundle) с использованием JWT аутентификации. Часть 1

    • Перевод

    Перевод статьи подготовлен в преддверии старта курса «Symfony Framework».





    В первой части статьи мы рассмотрим самый простой способ реализации REST API в проекте Symfony без использования FosRestBundle. Во второй части, которую я опубликую следом, мы рассмотрим JWT аутентификацию. Прежде чем мы начнем, сперва мы должны понять, что на самом деле означает REST.

    Читать дальше →
  • Почему вам нужен личный бренд + мануал для ленивых


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


      Я почти два года занимаюсь продюсированием авторских образовательных программ для IT-специалистов. Работаю я преимущественно с людьми, которые осознают, зачем им нужна добавочная стоимость. Наши преподаватели хотят не только передавать знания и быть часть коммьюнити, но и поднабрать баллов в свой гудвилл.


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

      Читать дальше →
    • Настраиваем DRBD для репликации хранилища на два CentOS 7 сервера

      • Перевод
      Перевод статьи подготовлен в преддверии старта курса «Администратор Linux. Виртуализация и кластеризация».



      DRBD (Distributed Replicated Block Device — распределённое реплицируемое блочное устройство) представляет собой распределенное, гибкое и универсально реплицируемое решение хранения данных для Linux. Оно отражает содержимое блочных устройств, таких как жесткие диски, разделы, логические тома и т.д. между серверами. Оно создает копии данных на двух устройствах хранения для того, чтобы в случае сбоя одного из них можно было использовать данные на втором.

      Можно сказать, что это нечто вроде сетевой конфигурации RAID 1 с дисками, отражаемыми на разные сервера. Однако оно работает совсем не так, как RAID (даже сетевой).
      Читать дальше →
    • Сортировка выбором

        Всем привет. Эту статью я написал специально к запуску курса «Алгоритмы и структуры данных» от OTUS.



        Введение


        Сортировка массива является одной из первых серьезных задач, изучаемых в классическом курсе «Алгоритмы и структуры данных» дисциплины computer science. В связи с этим задачи на написание сортировок и соответствующие вопросы часто встречаются на собеседованиях на позиции стажера или junior разработчика.
        Читать дальше →
      • Понимаем JIT в PHP 8

        • Перевод
        Перевод статьи подготовлен в преддверии старта курса «Backend-разработчик на PHP»



        TL;DR


        Компилятор Just In Time в PHP 8 реализован как часть расширения Opcache и призван компилировать операционный код в инструкции процессора в рантайме.

        Это означает, что с JIT некоторые операционные коды не должны интерпретироваться Zend VM, такие инструкции будут выполняться непосредственно как инструкции уровня процессора.
        Читать дальше →
        • +19
        • 5,6k
        • 7
      • Как выбрать мобильные девайсы для тестирования и не налажать

          Данная статья написана специально для OTUS преподавателем курса «QA Lead» — Анастасией Шариковой.





          Всем привет! Меня зовут Анастасия Шарикова, я руковожу отделом тестирования в Bookmate и веду телеграм канал Yet another QA.

          Уверена, что многие, когда приходили на позицию QA Lead’a, ожидали сложных и интересных задач по выстраиванию процессов, настройке системы автотестов, налаживанию функционального и нефункционального тестирования, в конце-концов — задач по управлению сотрудниками. Но в итоге оказалось, что все это есть, но сочетается с такими бытовыми штуками, как расчет зарплат, определение бюджета на отдел и прочих проблем, связанных с финансами — и зачастую от этого никуда не деться, особенно в маленьких и средних компаниях. Тем не менее, внимательность к таким темам — отличный способ дополнительно повысить качество вашего продукта и найти и предотвратить проблем уже на самых ранних этапах.
          Читать дальше →
        • Применение ZIO ZLayer

          • Перевод
          В июле OTUS запускает новый курс «Scala-разработчик», в связи с чем мы подготовили для вас перевод полезного материала.




          Новая функция ZLayer в ZIO 1.0.0-RC18+ является значительным улучшением старого паттерна модулей, что делает добавление новых сервисов намного быстрее и легче. Однако при использовании на практике я обнаружил, что может потребоваться какое-то время, чтобы освоить эту идиому.

          Ниже приведен аннотированный пример финальной версии моего тестового кода, в котором я рассматриваю ряд вариантов использования. Большое спасибо Адаму Фрейзеру за помощь в оптимизации и облагораживании моей работы. Сервисы преднамеренно упрощены, так что, надеюсь, они будут достаточно понятны для быстрого чтения.
          Читать дальше →
        • Экономим на облачных затратах Kubernetes на AWS

          • Перевод
          Перевод статьи подготовлен в преддверии старта курса «Инфраструктурная платформа на основе Kubernetes».




          Как сэкономить на облачных затратах при работе с Kubernetes? Единственно правильного решения не существует, но в этой статье описано несколько инструментов, которые помогут вам эффективнее управлять ресурсами и сократить расходы на облачные вычисления.

          Я написал эту статью с оглядкой на Kubernetes для AWS, но она будет применима (почти) точно так же и для других облачных провайдеров. Я предполагаю, что ваш кластер(ы) уже имеет настроенное автоматическое масштабирование (cluster-autoscaler). Удаление ресурсов и уменьшение масштаба развертывания позволит сэкономить только в том случае, если это также сократит ваш парк рабочих узлов (EC2 инстансов).

          В этой статье будут рассмотрены:

          • очистка неиспользуемых ресурсов (kube-janitor)
          • уменьшение масштабирования в нерабочее время (kube-downscaler)
          • использование горизонтального автомасштабирования (HPA),
          • уменьшение избыточного резервирования ресурсов (kube-resource-report, VPA)
          • использование Spot инстансов
          Читать дальше →
        • Введение в асинхронное программирование на Python

          • Перевод
          Всем привет. Подготовили перевод интересной статьи в преддверии старта базового курса «Разработчик Python».




          Введение


          Асинхронное программирование – это вид параллельного программирования, в котором какая-либо единица работы может выполняться отдельно от основного потока выполнения приложения. Когда работа завершается, основной поток получает уведомление о завершении рабочего потока или произошедшей ошибке. У такого подхода есть множество преимуществ, таких как повышение производительности приложений и повышение скорости отклика.



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



            Автор статьи: Елена Ленсу (Психотерапевт).
            Специализации: организационное консультирование, долговременная терапия, работа с травмой, сексология.

            Бизнес консультант, ex.HRD Pravo.Tech и Rocket10. Автор статей и преподаватель онлайн-курса «IT-Recruiter» в OTUS.

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

            Критика — указание только на недостатки в том, что было сделано.

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

            • Перевод
            Перевод статьи подготовлен в преддверии старта курса «Безопасность веб-приложений».




            В этой статье, первой из трех, мы рассмотрим угрозы в области веб-безопасности, а также поговорим о том, как инструменты обеспечения безопасности на стороне клиента справляются с часто упускаемым классом кибератак, примером которого является Magecart. Здесь описаны традиционные способы защиты от угроз в области веб-безопасности, которые основаны на стандартах со стороны клиента, таких как политика безопасности контента и целостность подресурсов. Эти развивающиеся подходы рассматриваются в контексте репрезентативной платформы безопасности на стороне клиента.
            Читать дальше →
          • Программист 1С. Где взять ПО для обучения?

              Всем привет. В июле OTUS запускает курс «Программист 1С», в рамках которого можно будет прокачаться до уровня ведущего 1С-программиста, а также подготовиться к сертификации «1С: специалист». Специально к началу занятий преподаватель курса Дмитрий Котлов подготовил полезную заметку о том, где взять ПО для обучения.





              Введение


              Коллеги, в этой статье я расскажу какой комплекс программных продуктов нужен для изучения программирования в среде разработке 1С: Предприятие, а также администрирования баз данных в том числе на базе MS SQL и изучения наиболее популярных конфигурации, таких как УТ, БП и ЗУП. Какие есть варианты чтобы сэкономить деньги на его приобретении и использовании.

              Рассмотрим этот вопрос подробнее.
              Читать дальше →
            • Избушка на обратно-совместимых ножках — компилируем JS для нужных браузеров

                image


                Привет, хабр! Уже сегодня на otus.ru стартует курс "Fullstack разработчик JavaScript" и я решил поддержать ребят этой статьей. Я кстати сам преподаю на курсе по React.js.

                Есть такой принцип — Don't break the web, который можно раскрыть как "веб всегда старается сохранить максимальную обратную совместимость". В некоторой мере этот принцип применим и к веб сайтам и приложениям — ваш сайт должен работать не только в одном конкретном браузере, но в целом наборе разных браузеров и версий. Но в каких? Однозначно должны быть какие-то разумные пределы и IE 6 и netscape navigator поддерживать не стоит, но два вопроса остаются открытыми: какие браузеры вы поддерживаете и как это обеспечить?


                Если есть обратная совместимость значит что-то меняется. Меняются в вебе три вещи: ECMAScript (javascript), CSS и различные Web API. CSS мы сегодня оставим на опушке, а пока, тропинка ведет нас в дебри современной фронтенд разработки

                Читать дальше →
              • 6 советов по нагрузочному тестированию к Черной пятнице

                • Перевод
                Перевод статьи подготовлен в преддверии старта нового курса от OTUS — «Нагрузочное тестирование».




                От автора: И хотя черная пятница не скоро, советы из этой статьи определенно будут полезны тем, кто занимается нагрузочным тестированием.

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

                Ниже приведены 6 советов актуальных для нагрузочного тестирования в целом и особенно в контексте Черной пятницы.
                Читать дальше →
              • Алгоритм MADDPG OpenAI

                • Перевод
                Начинаем неделю с продолжения серии статей, подготовленных специально для базового и продвинутого курсов «Математика для Data Science».

                В конце статьи поделимся с вами списком самых интересных материалов по этой теме.





                Новый подход


                Мультиагентное обучение с подкреплением – это развивающаяся и богатая область исследований. Тем не менее постоянное применение одноагентных алгоритмов в мультиагентных контекстах ставит нас в затруднительное положение. Обучение усложняется по многим причинам, в особенности из-за:

                • Нестационарности между независимыми агентами;
                • Экспоненциального роста пространств действий и состояний.

                Исследователи нашли множество способов уменьшить воздействие этих факторов. Большая часть этих методов попадает под понятие «централизованного планирования с децентрализованным выполнением.»
                Читать дальше →
              • Установка и настройка LXD на OpenNebula

                • Перевод
                Перевод статьи подготовлен в преддверии старта курса «Администратор Linux».





                В этой статье вы найдете пошаговое руководство по основам облачной системы оркестрации OpenNebula на LXD. Сначала мы воспользуемся простым инструментом MiniONE для создания одноузловой облачной среды в физической или виртуальной машине для пользователей, которые хотят опробовать функционал OpenNebula, затем посмотрим на обычную рабочую сессию с GUI и CLI и, наконец, дадим немного ссылок, которые помогут в создании распределенной продакшн среды.
                Читать дальше →
              • Простое управление ACL в Symfony

                • Перевод
                Перевод статьи подготовлен в преддверии старта курса «Symfony Framework».




                Не секрет, что ACL (access control lists) могут быть достаточно сложны в использовании. Поскольку Symfony рекомендует избирателей (voters) в качестве альтернативы ACL, я недавно решил, что напишу свой собственный простой в использовании Symfony 5 бандл для управления списками контроля доступа (ACL) в моих приложениях.

                programarivm/easy-acl-bundle изначально был написан для использования в JWT-аутентифицированном API для одностраничных приложений (single page applications — SPA), но он также может быть полезен в ряде других сценариев, когда не требуется Security компонент — что в большинстве случаев, по моему скромному мнению, особенно подходит для сеансов обработки многостраничных приложений (multi-page applications — MPA).
                Читать дальше →
                • +10
                • 1,3k
                • 1
              • Обратная связь по грантам памяти (memory grant feedback) в SQL Server 2019

                • Перевод
                Всем привет! В преддверии старта курса «MS SQL Server разработчик», подготовили для вас еще один интересный перевод.




                Если оптимизатор неправильно вычисляет необходимый объем памяти для выполнения запроса, то это будет либо пустая трата памяти, которую мог бы использовать другой процесс, либо будет слив данных на диск (disk spill). Для решения этой проблемы Microsoft добавила обратную связь по грантам памяти (Memory Grant Feedback). В этой статье Грег Ларсен (Greg Larsen) объясняет, как это работает.

                Обратная связь по грантам памяти (Memory Grant Feedback) в более ранних версиях SQL Server (до SQL Server 2019 или 15.x) была реализована только для запросов, выполняющихся в пакетном режиме (batch mode). Запросы в пакетном режиме выполняют сканирование и вычисление до 900 строк одновременно, в отличие от запросов в строковом режиме (row mode), когда за раз обрабатывается только одна строка. В версии 15.x обратная связь по грантам памяти была расширена для поддержки запросов в строковом режиме.

                Что такое обратная связь по грантам памяти? Это процесс корректировки вычисления памяти, необходимой для запроса с учетом того, сколько памяти было использовано при его предыдущих выполнениях. Это означает, что если кэшированный запрос использовал слишком много памяти при последнем выполнении, то SQL Server уменьшит выделение памяти при его следующем выполнении. Или если SQL Server обнаружил запрос, использующий диск из-за того, что в последний раз ему было выделено недостаточно памяти, то он увеличит память для запроса. Целью обратной связи по грантам памяти является корректировка требований к памяти при каждом выполнении запроса до тех пор, пока запрос не будет использовать объем памяти, соответствующий количеству обрабатываемых строк.
                Читать дальше →
              • Архитектура для разработчиков и админов: кому какие навыки нужны?



                  Классифицировали знания архитектуры в зависимости от уровня и деятельности специалистов. Памятка для тех, кто хочет прокачать свои навыки проектирования приложений или ПО, но не достаточно хорошо ориентируется в какой последовательности их осваивать.

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

                Самое читаемое