• По следам Highload++ Siberia 2019 — 8 задач по Oracle

      Привет!

      24-25 июня в Новосибирске прошла конференция Highload++ Siberia 2019. Наши ребята тоже там были докладом «Контейнерные базы Oracle (CDB/PDB) и их практическое использование для разработки ПО», мы выложим текстовую версию немного позже. Было круто, спасибо olegbunin за организацию, а также всем, кто пришёл.


      В этом посте мы хотели бы поделиться с вами задачами, которые были на нашем стенде, чтобы вы могли проверить свои знания в Oracle. Под катом — 8 задач, варианты ответов и объяснение.
      Читать дальше →
      • +25
      • 3.4k
      • 3
    • Критически важные промышленные и военные объекты переведут на отечественный софт



        Владимир Путин поручил правительству перевести объекты критически важной информационной инфраструктуры на программное обеспечение отечественной разработки. Уже 1 августа 2019 года правительство должно представить свои предложения о мерах по обеспечению технологической независимости и безопасности важных объектов путем перевода их под управление ПО, разработанного в России.

        По мнению авторов предложения, применение российского ПО в этой сфере даст возможность повысить общий уровень защищенности критической инфраструктуры.
        Читать дальше →
      • Замеряем производительность Qt

          Решила продолжить цикл статей об ОС «Аврора» (до недавнего времени называвшейся Sailfish). За время, что я работаю с этой ОС, у меня накопились разные наблюдения, которые касаются производительности приложений на Qt и системы в целом, ибо девайсами разнообразными обвешана, аки ёлка новогодняя, все мелочи при запуске подмечаю. Думаю, что это может быть интересно и полезно коллегам, кто тоже работает с Qt (или в скором времени будет работать). Предлагайте, что можно протестировать ещё.


          Читать дальше →
        • Альтернативы Raspberry Pi

            29 февраля 2012 наш мир немного изменился к лучшему. Raspberry Pi Foundation анонсировал начало продаж маленьких одноплатных компьютеров под маркой Raspberry Pi. В начале продаж купить устройство было непросто, но понемногу рынок насытился и с июля 2012 вы наконец могли просто пойти в магазин и купить или заказать через интернет первую «Малинку», Raspberry Pi Model B — одноплатный Linux-компьютер с 700 МГц процессором, 0.5 Гбайт ОЗУ, USB, Ethernet и 26 выводами GPIO, позволяющими подключать внешние платы, устройства ввода-вывода и исполнительные устройства. Устройство, построенное на базе относительно недорогой четырехслойной платы, с низкой себестоимостью, с ценой для конечного потребителя $35, сделанное настолько хорошо, что альфа-версия Raspberry Pi Model B стала победителем номинации «Hardware Design» на ARM TechCon 2011.


            Читать дальше →
          • В продажу поступил Raspberry Pi 4 по цене в $35



              Компания Raspberry сегодня представила новую модель мини-компьютера, Raspberry Pi 4. Стоимость устройства составляет всего $35. По словам разработчиков, возможности новой «малинки» практически ничем не отличаются от возможностей обычных ПК, но при этом сохраняются все те функции, которые пользователи ценят в Raspberry: возможность модификации и подключения самых разных дополнительных устройств.

              Raspberry 4, кроме прочих достоинств, получил поддержку 2 мониторов с разрешением вплоть до 4К.
              Читать дальше →
            • Лямбды: от C++11 до C++20. Часть 1

              • Translation
              Добрый день, друзья. Сегодня мы подготовили для вас перевод первой части статьи «Лямбды: от C++11 до C++20». Публикация данного материала приурочена к запуску курса «Разработчик C++», который стартует уже завтра.

              Лямбда-выражения являются одним из наиболее мощных дополнений в C++11 и продолжают развиваться с каждым новым стандартом языка. В этой статье мы пройдемся по их истории и посмотрим на эволюцию этой важной части современного C++.



              Вторая часть доступна по ссылке:
              Lambdas: From C++11 to C++20, Part 2
              Читать дальше →
              • +24
              • 13.2k
              • 8
            • Как общаются машины — протокол MQTT


                В предыдущей статье мы разбирали протокол Modbus, являющийся стандартом де-факто в промышленности для M2M-взаимодействия. Разработанный в далеком 1979 году, он имеет ряд существенных недостатков, которые решает MQTT.

                Протокол MQTT достаточно молод (стандартизирован только в 2016 году), но уже успел получить широкое распространение в промышленности и IoT. Он был специально разработан максимально компактным, для нестабильных интернет-каналов и маломощных устройств, и позволяет гарантированно доставлять сообщения в случае потери пакетов и обрывов связи.

                Главные особенности протокола MQTT:

                • Компактный и легковесный — минимальные накладные расходы на пересылку данных, для экономии трафика.
                • Устойчивость к потерям — гарантированная доставка в условиях нестабильных сетевых подключений.
                • Асинхронный — позволяет обслуживать большое количество устройств, и не зависит от сетевых задержек.
                • Поддержка QoS — возможность управлять приоритетом сообщений и гарантировать доставку сообщения адресату.
                • Динамическая конфигурация — не требует предварительно согласования полей и форматов данных, может конфигурироваться «на лету».
                • Работает за NAT — клиенты могут находиться за NAT, только сервер (брокер) должен иметь реальный IP. Позволяет обойтись без VPN и пробрасывания портов.
                • Удобная адресация — поля данных имеют текстовые названия, понятные для человека. Не нужно запоминать цифровые адреса и битовые смещения.
                Читать дальше →
              • Определена цена и характеристики смартфона для чиновников

                  «Ростелеком» подвёл итоги тендера на закупку 300 тыс. смартфонов для государственных организаций. Это будут китайские смартфоны на российской операционной системе Sailfish (ОС «Аврора»), которая уже прошла сертификацию. Поставщиками выбраны три компании, ниже указаны суммы контрактов для каждой из них:

                  • ООО «Ретэнтива Дистрибьюшен Компани» (RDC Group), 946,3 млн руб.;
                  • ООО «Центр Дитрибьюции» (входит в VVP Group), 949,8 млн руб.;
                  • ООО «Кьютэк» (Qtech) — 997,4 млн руб.

                  Смартфоны поставляются для проекта «Доверенная мобильная среда» для госорганов, следует из материалов на портале госзакупок (тендер № 31907640644).
                  Читать дальше →
                • FFmpeg начало работы с Visual Studio

                  Привет! Начну с того, что я занимаюсь разработкой программы определения автомобильных номеров на дешевом слабомощном процессоре типа Intel ATOM Z8350. Мы получили достаточно хорошие результаты в определении российских номеров на статической картинке (до 97%) с неплохим быстродействием без применения нейронных сетей. Дело осталось за малым — работа с IP-камерой рис 1.

                  image
                  рис.1 Компьютер Intel ATOM Z83II и IP-камера ATIS

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

                  Задача: Full HD IP-камера в стандарте h.264 передает RTSP поток. Размер распакованного кадра 1920x1080 пикселей, частота 25 кадров в секунду. Нужно получать декодированные кадры в оперативную память и каждый 25 кадр сохранять на диск.

                  В данном примере мы будем декодировать кадры программно. Цель — научиться использовать FFmpeg и в дальнейшем сравнить результаты, получаемые с помощью аппаратного декодирования. Вы увидите, FFmpeg – это просто!
                  Читать дальше →
                • Ломаем простую «крякми» при помощи Ghidra — Часть 1

                  О том, что это за зверь такой — Ghidra («Гидра») — и с чем его едят она ест программки, многие уже, наверняка, знают не понаслышке, хотя в открытый доступ сей инструмент попал совсем недавно — в марте этого года. Не буду докучать читателям описанием Гидры, ее функциональности и т.д. Те, кто в теме, уже, уверен, всё это сами изучили, а кто еще не в теме — могут это сделать в любое время, благо на просторах веба сейчас найти подробную информацию не составит труда. Кстати, один из аспектов Гидры (разработку плагинов к ней) уже освещался на Хабре (отличная статья!) Я же дам только основные ссылки:


                  Итак, Гидра — это бесплатный кроссплатформенный интерактивный дизассемблер и декомпилятор с модульной структурой, с поддержкой почти всех основных архитектур ЦПУ и гибким графическим интерфейсом для работы с дизассемблированным кодом, памятью, восстановленным (декомпилированным) кодом, отладочными символами и многое-многое другое.

                  Давайте попробуем уже что-нибудь сломать этой Гидрой!
                  Читать дальше →
                • Управление Raspberry через websockets

                    Raspberry Pi снискали огромную популярность по всему миру. Однако многие из любителей-разработчиков сталкиваются с проблемой доступа к устройству из интернета. Как правило приходится колдовать с DDNS или докупать статический IP адрес. Оба варианта предполагают настройка роутера, что не для всех и не всегда доступно. Кроме того – откртытие прямого доступа к устройству из интрента несет в себе определнные риски безопасности.

                    Крайне распространенным способом решения этой проблемы является использование промежуточного сервера, через который сервер и клиент подключаются друг к другую.
                    Схема крайне широко используется в различных пакетах удаленного доступа: VNCViewer, AmmyyAdmin и т.д.

                    Вариант 1-DDNS

                    image

                    Вариант 2 – статический IP адрес

                    image

                    Вариант 3 – использование промежуточного сервера

                    image

                    Эту схему подключения можно реализовать через протокол MQTT over Websockets, но мне было инетесно реализовать что-то значительно более простое, JSON-ориентированое, расширяемое, без ограничений протокола на размер сообщения и с более очевидной моделью безопасности.
                    Читать дальше →
                    • +18
                    • 9.2k
                    • 8
                  • Релиз кросс-платформенного .NET UI-тулкита AvaloniaUI 0.8

                      Состоялся очередной бета-релиз AvaloniaUI.



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

                      Читать дальше →
                    • Кодирование речи на 1600 бит/с нейронным вокодером LPCNet

                      • Translation


                      Это продолжение первой статьи о LPCNet. В первом демо мы представили архитектуру, которая сочетает обработку сигналов и глубокое обучение для повышения эффективности нейронного синтеза речи. На этот раз превратим LPCNet в нейронный речевой кодек с очень низким битрейтом (см. научную статью). Его можно использовать на текущем оборудовании и даже на телефонах.

                      Впервые нейронный вокодер работает в реальном времени на одном процессорном ядре телефона, а не на высокоскоростном GPU. Итоговый битрейт 1600 бит/с примерно в десять раз меньше, чем выдают обычные широкополосные кодеки. Качество намного лучше, чем у существующих вокодеров с очень низким битрейтом и сопоставимо с более традиционными кодеками, использующими более высокий битрейт.
                      Читать дальше →
                    • Исчерпывающий список различий между VB.NET и C#. Часть 1

                      • Translation
                      image

                      Согласно рейтингу TIOBE в 2018 году VB.NET обогнал по популярности C#. Совпадение или нет, но в феврале Эрик Липперт, один из создателей C#, призвал читателей обратить внимание на блог его друга, бывшего коллеги по команде компилятора Roslyn и, по совместительству, ярого фаната VB.NET, Энтони Грина. «Подобные ресурсы — это глубинные детали от экспертов, которые не так легко найти, читая документацию», пишет Эрик. Представляем вашему вниманию первую часть перевода статьи Энтони Грина «Исчерпывающий список различий между VB.NET и C#». Возможно, именно в этих различиях кроется секрет динамики рейтинга этих языков.
                      Читать дальше →
                    • Моя система домашней автоматики

                      • Tutorial
                      Привет, Хабр!

                      Цель этой статьи(цикла) хабраэффект вводный рассказ о моей системе домашней автоматики, конечно я не придумал и создал всё с нуля, а только лишь собрал технологии и проекты которые посчитал наиболее подходящими для этой цели и добавил немного от себя. Уровень любительский но в результате всё работает, люди пользуются и за мной с дубиной не бегают. Делал всё сам. Конструктивная критика приветствуется, будет интересно узнать любое мнение.

                      Система включает в себя оборудование, и набор программ: непосредственно система автоматики для связи оборудования и визуализации, связь и телеметрия для удаленного мониторинга и обновления, голосовой ассистент от Яндекса. Всё (почти всё) открыто и выложено на Github.
                      Читать дальше →
                    • REST? Возьмите тупой JSON-RPC

                        В последнее время на Хабре разгорелось много споров по поводу того, как правильно готовить REST API.

                        Вместо того, чтобы бушевать в комментариях, подумайте: а нужен ли вам REST вообще?
                        Что это — осознанный выбор или привычка?

                        Возможно, именно вашему проекту RPC-like API подойдет лучше?
                        Читать дальше →
                      • Куда приводят поиски идеальной SCADA

                          Два года назад я написал статью “SCADA: в поисках идеала”. Идея была проста — превратить Qt Creator в среду для разработки SCADA. Теперь хочу рассказать, какой путь проделан и что получилось.



                          Удалось ли достигнуть идеального результата? — Разумеется, нет. На то он и идеал, что недостижим. Зато удалось заметно к нему приблизиться.

                          Читать дальше →
                        • Почему вы должны думать о функциональном программировании

                          Привет, Хабр! Представляю вашему вниманию перевод своей статьи «Why you should think about functional programming», посвященной функциональному программированию.

                          image

                          Почему вы должны думать о функциональном программировании? Давайте ответим на следующие вопросы:

                          • всегда ли ваши проекты выполняются в определенные сроки?
                          • Были ли у пользователей какие-либо жалобы?
                          • Поддержка проекта никогда не занимала много времени?
                          • Новый функционал всегда удачно вписывается в существующую архитектуру?

                          Если ответы на все вышеупомянутые вопросы положительные, вам не нужно ничего менять, ваша команда — редкий пример гармоничного персонала, методологии и инструментов. В противном случае вы должны быть открыты для новых подходов к решению ваших проблем, включая критический взгляд на используемые технические средства и языки программирования.
                          Читать дальше →