• Разделение control и data plane в сетевом оборудовании



      В работе сетевого устройства можно выделить две абстракции – управляющий уровень (control plane) и передающий уровень (data plane). Сontrol plane отвечает за логику работы сетевого устройства для обеспечения в дальнейшем возможности передачи пакетов (заполнение различных таблиц, например, маршрутизации, отработку различных служебных протоколов ARP/STP/и пр.). Data plane в свою очередь отвечает непосредственно за передачу полезного трафика через наше сетевое устройство. Т.е. сontrol plane нам предоставляет информацию куда и как слать сетевой трафик, а data plane уже выполняет поставленные перед ним задачи. Данные абстракции могут быть выделены как на логическом, так и на физическом уровне. Но всегда ли на сетевом оборудовании присутствует такое разделение и где именно выполняются функции каждой из абстракций? Давайте попробуем в этом разобраться.
      Читать дальше →
    • Открытый урок «Диаграммы UML»

        Всем бобра!

        Наш курс «Разработчик С++» потихоньку растёт и ширится: присоединился новый преподаватель с очень богатым опытом — Юрий Авраменко. И он уже провёл у нас первый открытый урок по диаграммам UML, на котором разбирались: виды диаграмм, инструменты построения схем и диаграмм, варианты представлений и прочее.


        Ждём вопросы тут или на Дне открытых дверей.
      • Ещё одна статья про кватернионы и углы Эйлера

        По работе у меня возникла необходимость переводить координаты объекта из углов Эйлера в кватернионы и обратно.

        В ходе разбирательства пришлось прочитать несколько статей на Хабре, посвященных кватернионам и углам Эйлера, Википедию и просто методички и статьи разных ВУЗов. Для удобства приведу ссылки на статьи, с Хабра:

        Каверзные кватернионы
        Заметки о вращении вектора кватернионом
        Кватернионы для чайников
        Кручу-верчу, запутать хочу. Углы Эйлера и Gimbal lock

        Формулы для пересчёта углов Эйлера в кватеринионы и обратно найти можно, но
        если бы всё было так просто...
      • Прототип читерского ASO продвижения

        Всем привет!


        Сразу скажу, что ещё ни одно мое приложение не пользовалось популярностью, поэтому скорее неверны мои личные суждения о бесполезности настройки ключевых фраз и описания приложения в Google Play. Но знаете, первое желание после публикации долгожданного приложения, чтобы пользователи, наконец, начали его устанавливать и пользоваться. Какое же это разочарование, когда этого не происходит и спустя длительное время, думаю, многие знают. Кажется, что вовсе нет смысла создавать что-то стоящее, если все равно его судьба храниться на свалке маркета.

        Читать дальше →
      • Задействовать для простых тестов наследование, полиморфизм и шаблоны? Почему бы и нет…

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

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

          Сложно сказать, чем это вызвано. Может быть людей перекормили ООП (а это так и было)… Может быть задачи за несколько минувших десятилетий сильно поменялись (а это так и есть)… Может быть и просто «вот и выросло поколение»… Как бы то ни было, можно попробовать на примере из реальной жизни показать, что все не так однозначно ©.

          Итак, о чем пойдет речь?
          Читать дальше →
        • Mozilla разработала открытый шлюз для Интернета вещей



            Apple, Google, Amazon, Samsung — у каждой из этих компаний собственные стандарты и программы для управления «умными» устройствами собственной марки. В результате они зачастую могут общаться только со своими «родственниками» производства той же фирмы. Смарт-колонка Apple HomePod откажется делать резервную копию данных в облако Amazon или Google и не будет выполнять команды с Andrioid-смартфона. Получается, что для полной интеграции вся техника в доме должна быть от одной компании. Это явно ненормальная ситуация.

            В прошлом году организация Mozilla объявила, что работает над созданием единого свободного фреймворка — программ и сервисов для Интернета вещей, работающих по открытому стандарту Web Things API, который использует JSON, REST и WebSockets API.

            Фреймворк должен стать единым шлюзом для взаимодействия «умных» устройств разных производителей (Things Gateway). Сейчас организация официально объявила о запуске проекта Mozilla IoT, выложила стек программ и опубликовала руководство по построению системы «умного дома» с использованием Raspberry Pi. Заявка на стандартизацию Web Things API подана в консорциум W3C 2 февраля 2018 года.
            Читать дальше →
          • Руководство по фоновой работе в Android. Часть 1

            • Перевод

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


            Читать дальше →
            • +24
            • 4,6k
            • 8
          • Amazon S3 и все-все-все: выбираем объектное хранилище

              Самые известные на мировом рынке объектные хранилища — это Amazon S3 (Simple Storage Service), Google Cloud Storage и Microsoft Blobs Storage. Они надежны, доступны через интернет и масштабируются до сотен петабайт. Наиболее популярный способ доступа к объектному хранилищу — S3 RESTful API от компании Amazon. Есть и альтернатива, OpenStack Swift — поддерживает оба API и даже имеет собственное (как у Microsoft или Google, например). Дополнительно предоставляется доступ по другим файловым и блочным протоколам вроде WebDAV, NFS и FTP, но в контексте этой статьи мы тестируем только доступ по протоколу HTTPS через разнообразные API.

              Для сравнения возьмем отечественные публичные объектные хранилища. Их не так много, и мы рассмотрим наиболее заметных игроков российского рынка: Mail.Ru Cloud Solutions, servers.ru, Selectel, Техносерв и Ростелеком.
              Читать дальше →
              • +29
              • 5,6k
              • 7
            • Я написал мобильное приложение – хочу патент

              «Я написал мобильное приложение – хочу патент!» – самая типичная фраза, которую слышит патентовед, когда к нему приходит разработчик.

              Но не всё так просто. Мобильное приложение – это целый букет технический решений, а значит и потенциальных изобретений.

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

              Давайте на примере таких гигантов, как Apple™ и Яндекс™ разберём несколько сценариев поиска изобретения в IT решении.

              image
              Читать дальше →
            • Фундаментальная уязвимость HTML при встраивании скриптов

                Чтобы описать суть проблемы, мне нужно рассказать, как вообще устроен HTML. Вы наверняка в общих чертах представляли себе, но я все равно коротко пробегусь по основным моментам, которые понадобятся для понимания. Если кому-то не терпится, сразу переходите к сути.


                HTML — это язык гипертекстовой разметки. Чтобы говорить на этом языке, нужно соблюдать его формат, иначе тот, кто читает написанное, не сможет вас понять. Например, в HTML у тегов есть атрибуты:


                <p name="value">

                Тут [name] — это имя атрибута, а [value] — это его значение. В статье я буду использовать квадратные скобки вокруг кода, чтобы было понятно, где он начинается и заканчивается. После имени стои́т знак равенства, а после него — значение, заключенное в кавычки. Значение атрибута начинается сразу после первого символа кавычки и заканчивается сразу перед следующим символом кавычки, где бы он не находился. Это значит, что если вместо [value] вы запишете [OOO "Рога и копыта".], то значение атрибута name будет [OOO ], а еще у вашего элемента будет три других атрибута с именами: [рога], [и] и [копыта"."], но без значений.


                <p name="OOO "Рога и копыта"."></p>

                Если это не то, чего вы ожидали, вам нужно как-то изменить значение атрибута, чтобы в нем не встречалась кавычка. Самое простое, что можно придумать — просто вырезать кавычки.


                <p name="OOO Рога и копыта."></p>
                Читать дальше →