• Почему мы выбрали Electron

      Предыстория


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

      Хочу вам рассказать о том, как мы пришли к Electron как технологии для написания нашего приложения.
      Читать дальше →
    • Microsoft рассказала о стоимости платной поддержки Windows 7



        С 14 января 2020 года Windows 7 превратится в тыкву перестанет получать обновления. Microsoft прекращает поддержку этой ОС, но оставляет возможность платной подписки на обновления — это необходимо, например, компаниям, которые не могут отказаться от «семерки» в силу ряда причин.

        Ранее стоимость не была озвучена, представители корпорации лишь заявили, что цена будет повышаться год от года. Собственно, это достаточно логично — ни один программный продукт не может поддерживаться бесплатно в течении многих лет. Необходимо выделять на это ресурсы, и понятно, что Microsoft не желает делать это бесплатно. Так вот, сейчас компания рассказала о том, сколько будет стоить подписка на обновления «семерки».
        Читать дальше →
      • Сообщения об ошибках Windows станут гораздо более информативными

        • Новость


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

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



          Совсем небольшое сообщение.

          По ряду личных причин я люблю таскать свой инструментарий на флешке или внешнем жёстком диске. Одним из инструментов является IDA 6.8.

          После работы с системами я не люблю, когда остаются какие-то хвосты в реестре или в виде файлов. И к сожалению, IDA и её модули (в частности, BinnDiff) этим грешны.

          Ну и возникло желание получить полностью портабельный комплекс.
          Читать дальше →
        • Фильтр Калмана для минимизации энтропийного значения случайной погрешности с не Гауссовым распределением

          • Tutorial

          Введение


          На Habr математическое описание работы фильтра Калмана и особенности его применения рассматривались в следующих публикациях [1÷10]. В публикации [2] в простой и доходчивой форме рассмотрен алгоритм работы фильтра Калмана (ФК) в модели «пространства состояний», Следует отметить, что исследование систем контроля и управления во временной области с помощью переменных состояния широко используется в последнее время благодаря простоте проведения анализа [11].

          Публикация [8] представляет значительный интерес именно для обучения. Очень эффективен методический приём автора, который начал свою статью с рассмотрения распределения случайной погрешности Гаусса, рассмотрел алгоритм ФК и закончил простой итерационной формулой для подбора коэффициента усиления ФК. Автор ограничился рассмотрением распределения Гаусса мотивируя это тем, что при достаточно больших $n$ (многократных измерений) закон распределения суммы случайных величин стремится к распределению Гаусса.

          Теоретически такое утверждение, безусловно, справедливо, однако на практике число измерений в каждой точке диапазона не может быть очень большим. Сам R. E. Kalman получил результаты о минимуме ковариации фильтра на базе ортогональных проекций, без предположения о гауссовости ошибок измерений [12].

          Целью настоящей публикации является исследование возможностей фильтра Калмана для минимизации энтропийного значения случайной погрешности с не Гауссовым распределением.
          Для оценки эффективности фильтра Калмана при идентификации закона распределения или суперпозицией законов по экспериментальным данным воспользуемся информационная теорией измерений основанной на теории информации К. Шеннона, согласно которой информация, подобно физической величине, может быть измерена и оценена.
          Читать дальше →
        • OpenSceneGraph: Уровни детализации (LOD) и фоновая загрузка объектов

          • Tutorial
          image

          Введение


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

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


          В этой связи возникает необходимость управления ресурсами приложения, сводящаяся к очевидному решению: загрузке только тех ресурсов (моделей, текстур и так далее), которые необходимы для формирования сцены в текущий момент времени при текущем положении наблюдателя; уменьшении уровней детализации удаленных объектов; выгрузке не нужных более объектов из памяти системы. В большинстве своем графические и игровые движки предоставляют некоторый набор инструментов для решения подобных задач. Сегодня мы рассмотрим, какие из них имеются в OpenSceneGraph.
          Читать дальше →
        • Публикация приложения в Microsoft Store: некоторые изменения за год

            Вот уже год прошел с момента выхода статьи об особенностях публикации в MS Store. За прошедший год произошло много событий – GDPR, выход VS 2019 и прочие изменения.

            В сегодняшней небольшой статье мне бы хотелось немного рассказать о том, какие изменения произошли в особенностях публикации в Microsoft Store, а также, по многочисленным просьбам, подробнее рассказать о некоторых разделах отправки, о которых в предыдущей статье были лишь упоминания (в данном случае, это подразделы «Цены и доступность», «Свойства» и «Возрастные категории»). Это будет, в каком-то роде, актуализация и расширение предыдущей статьи.

            Читать дальше →
          • OpenSceneGraph: Система плагинов

            • Tutorial
            image

            Введение


            Где-то в предыдущих уроках уже говорилось о том, что OSG поддерживает загрузку разного рода ресурсов типа растровых изображений, 3D-моделей различных форматов, или, например, шрифтов через собственную систему плагинов. Плагин OSG является отдельным компонентом, расширяющим функционал движка и обладающий интерфейсом, стандартизированным в пределах OSG. Плагин реализуется как динамическая разделяемая библиотека (dll в Windows, so в Linux и т.д). Имена библиотек плагинов соответствуют определенному соглашению

            osgdb_<расширение файла>.dll
            

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

            osg::ref_ptr<osg::Node> model = osgDB::readNodeFile("cessna.osg");
            

            движок видит расширение osg и загружает плагин с именем osgdb_osg.dll (или osgdb_osg.so в случает Linux). Код плагина выполняет всю черную работу, возвращая нам указатель на ноду, описывающую модель цессны. Аналогичным образом, попытка загрузки изображения формата PNG

            osg::ref_ptr<osg:Image> image = osgDB::readImageFile("picture.png");
            

            приведет к тому, что будет загружен плагин osgdb_png.dll, в котором реализован алгоритм чтения данных из картинки в формате PNG и помещение этих данных в объект типа osg::Image.
            Читать дальше →
          • OpenSceneGraph: Обработка событий

            • Tutorial
            image

            Введение


            Одной из особенностей языка C++, за которую его часто критикуют — отсутствие в стандарте механизма обработки событий. Между тем данный механизм это один из основных путей взаимодействия одних программных компонентов с другими программными компонентами и аппаратным обеспечением, и реализуется он на уровне конкретной ОС. Естественно, что каждая из платформ имеет свои нюансы реализации описанного механизма.

            В связи со всем вышеперечисленным, при разработке на C++, возникает потребность в реализации обработки событий тем или иным способом, решаемая за счет использования сторонних библиотек и фреймворков. Всем известный фреймворк Qt предоставляет механизм сигналов и слотов, позволяющий организовать взаимодействие классов, наследуемых от QObject. Реализация событий присутствует и в библиотеке boost. И конечно же в движке OpenSceneGraph не обошлось без собственного «велосипеда», о применении которого и пойдет речь в статье.
            Читать дальше →
          • Синтетические символы и модули (WinDbg/DbgEng)

              В этой публикации речь пойдет о синтетических модулях и символах отладочного движка Windows (debugger engine). То есть о сущностях, которые можно искусственно добавить в отладчик для раскраски адресов памяти.


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

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