Как сделать свой С++ код кроссплатформенным?

Автор: admin от 19-04-2017, 18:35, посмотрело: 43

Возможно, кто-то, прочитав заголовок, спросит: «Зачем что-то делать со своим кодом?! Ведь С++ кроссплатформенный язык!». В целом, это так… но только пока нигде нет завязок на специфичные возможности компилятора и целевой платформы…

В реальной жизни разработчики, решающие конкретную задачу под конкретную платформу, редко задаются вопросом «А точно ли это соответствует Стандарту С++? А вдруг это расширение моего компилятора». Они пишут код, запускают сборку и чинят места, на которые выругался их компилятор.

В итоге получаем приложение, которое, в некоторой степени, «заточено» под конкретный компилятор (и даже под его конкретную версию!) и целевую ОС. Более того, из-за скудности стандартной библиотеки С++ некоторые вещи просто невозможно написать, не воспользовавшись специфичным API системы.

Так было и у нас в Тензоре. Мы писали на MS Visual Studio 2010. Наши продукты были 32-х битными Windows-приложениями. И, само собой, код был пронизан всевозможными завязками на технологии от Microsoft. Однажды мы решили, что пора осваивать новые горизонты: пора научить СБИС работать под Linux и другими ОС, пора попробовать перейти на другое «железо» (POWER).

В данном цикле статей я расскажу, как мы сделали свои продукты настоящими кроссплатформенными приложениями; как заставили их работать на Linux, MacOS и даже под iOS и Android; как запустили свои приложения на множестве аппаратных архитектур (x86-64, POWER, ARM и другие); как научили работать на big-endian машинах.
Как сделать свой С++ код кроссплатформенным?

Категория: Программирование, Веб-разработка, Windows, Linux

 

Здравствуй, Хабр

Автор: admin от 18-04-2017, 18:05, посмотрело: 85

Здравствуй, Хабр

Тензор уже более 20 лет работает на рынке программного обеспечения. Бухгалтер, который выдает вам зарплату, точно знает, кто мы, и что мы делаем. А вот в IT-сфере мы о себе специально не заявляли. Пришло время это изменить и познакомиться.

Электронная отчетность, электронный документооборот, поиск и анализ закупок, корпоративная соцсеть, видеокоммуникации, управление персоналом – это лишь часть наших сервисов. Мы автоматизируем рабочие процессы и превращаем их в «несколько кликов».

Работать в СБИС можно офлайн, онлайн и в мобильном приложении.

Не будем грузить вас рассказами о нашем продукте. Если интересно, то вот здесь мы в буковках и картинках рассказали о нем все.

Почему мы – интересные и полезные?


Для разработки своих продуктов (online сервисов, desktop и мобильных приложений) мы используем собственный PaaS-фреймворк.

Backend фреймворк мы пишем на С++, при этом прикладной код можно писать как на С++, так и на Python или javascript, для этого ко всем встроенным типам сделаны bridges. Помимо встроенных типов и системы вызовов (remoting, IPC, inproc), важной частью фреймворка является сервер приложения, который работает быстрее сервера Node.JS на аналогичном железе, но об этом чуть позже в отдельной статье.

Категория: Веб-разработка, Windows, Linux

 

Упрощаем конвертеры для WPF

Автор: admin от 17-04-2017, 11:20, посмотрело: 40

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

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

Категория: Программирование, Веб-разработка, Windows

 

K-Meleon 76 Pro — новая русская сборка браузера для олдфагов и истинных ценителей

Автор: admin от 16-04-2017, 23:40, посмотрело: 55

И снова здравствуйте!

Безумно много времени прошло с момента нашей последней публикации, приуроченной к возрождению российской Pro-сборки K-meleon.
Конечно, многие воспримут наши новости с иронией и неизбежными ухмылками.

Увы, разработка K-Meleon'a стагнировала по ряду объективных причин, главная из которых — зависимость от единственного разработчика. У нашего «отца-разработчика» Дориана случилось подряд несколько проблем, что самым негативным образом повлияло на разработку, вкупе с бурными революциями в коде движка Мозилла, о которых сообщество уже давно отбурлило и теперь продолжает лишь тихо подвывать.

Тем не менее, нельзя сказать, что разработка встала совсем — наша сборка основана на коде, выпущенном в декабре 2016 года. Правда, это по-прежнему релиз-кандидат 76-й версии, основанной на Gecko 38 ESR, так что браузер заведомо перешел в разряд олдфагового инструментария, актуального для обладателей устаревшего и слабого оборудования.

Нет, он по-прежнему прекрасно работает и на современном оборудовании, но модерн-вебдизайн стремительным домкратом обрушивает на нас все новые и новые фишки популярных сайтов (часто написанные вопреки всем веб-стандартам), которые разработчикам браузеров просто ПРИХОДИТСЯ поддерживать. Ибо куда им (даже таким как Google) бодаться с тем же фейсбуком — себе дороже. Проше вставить в код костыль.

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

Категория: Веб-разработка, Windows

 

Извлечение аудиоданных из wav-файла на UWP

Автор: admin от 6-04-2017, 17:25, посмотрело: 26

Сегодня мы представляем материал от наших давних партнеров, компании Music Paradise, которые, как вы помните, уже делились с Хабром секретами создания музыкальных приложений в нашей совместной статье «Внедрение социальных сервисов в неигровое приложение». На этот раз специалисты из команды расскажут о специфике реализации базовых функций утилиты Audio Editor, изначально написанной для iOS и Mac устройств, на новой платформе — Windows — и о том методе, который они применяли при адаптации.

Извлечение аудиоданных из wav-файла на UWP


«В этой статье мы рассмотрим один из самых доступных способов получения аудиоданных из файла. Извлечение аудиоданных является краеугольным камнем для всех разработчиков, которые делают первые шаги в работе со звуком, однако внимания ей уделяется на удивление мало. Проблема ощущается особенно остро при попытках найти готовые решения или инструкции для UWP в интернете: в большинстве случаев ответа не получаешь вообще или же приходится довольствоваться устаревшими решениями. Между тем, при работе со звуком извлечение данных имеет значимый смысл, давая разработчику возможность редактировать данные: копировать, добавлять, изменять, путем наложения эффектов, визуализировать их на экране пользователя. Именно о визуализации сегодня и пойдет речь. Несмотря на существование специальных библиотек для работы с аудиоданными в галерее NuGet, мы построим логику приложения на самостоятельной обработке байтов аудиофайла. Таким образом, в процессе мы узнаем больше о структуре wav-файла и убедимся на практике, что работа с аудио данными — это не так уж сложно.

Категория: Веб-разработка, Windows

 

Это не шутки — остались считанные сутки… до дедлайна на GSoC 2017

Автор: admin от 1-04-2017, 01:00, посмотрело: 45

Это не шутки — остались считанные сутки… до дедлайна на GSoC 2017

Внимание! Это вам не шутки, а реальная возможность заработать!

Мы совсем забыли Вам напомнить или даже вообще рассказать, что в этом году случилось знаменательное событие. ReactOS впервые в истории получит слоты на Google Summer of Code второй год подряд. Ранее нам удавалось попасть в эту программу лишь раз в пять лет. Еще одно свидетельство значимости роли проекта в глазах индустрии!

Если вы хотите принять участие в GSoC и покодить этим летом за солидные премиальные и на общественное благо, то немедленно посетите данные странички на нашем сайте:
Основная информация о GSoC 2017 | Идеи для Google Summer of Code 2017

Если после просмотра данных материалов вы решитесь претендовать на участие в рамках наших слотов, то безотлагательно пишите в наш IRC-чат и высылайте свое резюме в текстовом виде в нашу рассылку

Категория: Веб-разработка, Google, Windows

 

Проверяем проект PascalABC.NET с помощью плагинов для SonarQube: SonarC# и PVS-Studio

Автор: admin от 29-03-2017, 14:50, посмотрело: 48

Проверяем проект PascalABC.NET с помощью плагинов для SonarQube: SonarC# и PVS-Studio

В ноябре прошлого года в нашем блоге была опубликована статья о разработке и использовании плагина PVS-Studio для SonarQube. Мы получили много откликов от клиентов и просто заинтересованных пользователей с просьбами провести тестирование плагина на реальном проекте. Так как интерес к этому вопросу не ослабевает, было решено провести тестирование на C# проекте PascalABC.NET. Также не будем забывать, что SonarQube содержит собственный статический анализатор C# кода — SonarC#. Для полноты картины проведем исследование и SonarC#. Целью данной работы является не сравнение анализаторов, а показ основных особенностей их взаимодействия с сервисом SonarQube. Прямое сравнение анализаторов было бы не вполне корректным по той причине, что PVS-Studio является специализированным инструментом поиска ошибок и потенциальных уязвимостей, в то время как SonarQube — это сервис оценки качества кода по большому числу параметров: дублирование кода, соблюдение стандартов кодирования, покрытие кода модульными тестами, возможные ошибки в коде, плотность комментариев в коде, технический долг и т.д.

Категория: Программирование, Веб-разработка, Windows

 

Масштабирование Git (и кое-какая предыстория)

Автор: admin от 29-03-2017, 14:40, посмотрело: 34

Масштабирование Git (и кое-какая предыстория)
Несколько лет назад Microsoft приняла решение начать долгий процесс по восстановлению системы разработки во всей компании. Мы большая компания, с множеством коллективов — у каждого собственные продукты, приоритеты, процессы и инструменты. Есть некоторые «общие» инструменты, но их много разных — и ОЧЕНЬ БОЛЬШОЕ количество разработанных внутри компании инструментов одноразового использования (под коллективами я имею в виду подразделения — тысячи инженеров).

У этого есть отрицательные стороны:


  • Множество избыточных инвестиций в коллективы, которые разрабатывают похожие инструменты.

  • Невозможность финансировать какой-либо инструментарий до «критической массы».

  • Затруднения для сотрудников в перемещении по компании из-за разных инструментов и процесса.

  • Сложность в обмене кодом между организациями.

  • Разногласия с новичками в начале работы из-за чрезмерного изобилия инструментов «только для MS».

  • И так далее...
  • Категория: Веб-разработка, Windows

     

    Windows hook: просто о сложном

    Автор: admin от 23-03-2017, 17:05, посмотрело: 54

    Windows hook: просто о сложномЧто такое хук?
    Что такое хук функций и для чего он нужен? В переводе с английского «hook» — ловушка. Поэтому о назначении хуков функции в Windows можно догадаться — это ловушка для функции. Иными словами, мы ловим функцию и берем управление на себя. После этого определения нам открываются заманчивые перспективы: мы можем перехватить вызов любой функции, подменить код на свой, тем самым изменив поведение любой программы на то, которое нам нужно (конечно, в рамках определенных ограничений).

    Целью данной статьи является демонстрация установки хука и его непосредственная реализация.

    Категория: Программирование, Системное администрирование, Веб-разработка, Windows

     

    Зачем в команде мобильной разработки появился сейф под управлением Windows 10

    Автор: admin от 23-03-2017, 10:05, посмотрело: 38

    Зачем в команде мобильной разработки появился сейф под управлением Windows 10


    Привет! Я хочу рассказать, как мы сделали автоматическую выдачу 70 мобильных тестовых устройств, и перестали задаваться вопросом «у кого тот розовый iPhone 6».


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

    Категория: Веб-разработка, Game Development, Яндекс, Windows

     
    Назад Вперед