• JS-DOS API: запускаем DOS в браузере

    • Tutorial
    Уже более 5 лет существует проект emscripten. За время существования проекта была проделана огромная работа. Удивить искушенного читателя стало гораздо сложнее. Мы уже видели DOOM, Dune 2, TTD, С&C и много чего ещё в браузере. Однако, запустить DOS программу в браузере по прежнему сложно: нужно не плохо разбираться в C/C++ и emscripten. Эксперименты с Dosbox вылились в проект em-dosbox, большинство DOS программ стали доступны для браузера. Что бы поставить точку, осталось лишь создать открытое API для запуска DOS программ в браузере.
    Читать дальше →
  • em-dosbox и 50 подарков на новый год

      Некоторые вещи с годами становятся только лучше. Например, классические игры, разработанные в эпоху DOS завораживают. Каждая из них — штучный продукт сделанный с большой любовью. К сожалению DOS платформа ушла в прошлое и вместе с ней уходят замечательные продукты. Вернуть их в современный мир — это ли не настоящий подарок?
      Читать дальше →
    • Play! Lift! Srsly?

      • Tutorial
      Play! и Lift, — эти два фреймворка являются олицетворением того, куда движется основной поток Scala веб-разработчиков. Воистину, попробуйте поискать на Stack Overflow фреймворки для Scala и вы поймете что я прав. Я верю, что процент здравомыслящих людей, которым надоели сложные комбайны, велик, поэтому расскажу про «другой» фреймворк Xitrum.
      Читать дальше →
    • НЛО прилетело и опубликовало себя в браузере

        Пронзительно гудела сирена, коридор полыхал от огня тревожных фонарей. Скайрейнджер был уже над землей. Отважные бойцы X-COM, на самом деле простые ребята из разных уголков планеты летели на свое первое задание.
        Читать дальше →
      • Агрегация логов с нескольких серверов средставами log4j

        • Tutorial
        log4j широкоизвестная библиотека логирования, нашедшая своё применение во многих проектах. Её возможности не ограничиваются «добавлением строчек в лог-файлы». На базе log4j можно организовать сложную систему агрегации логов на центральный сервер. Кроме того, сообщество располагает GUI утилитами для анализа логов, которые удобно подключать к центральному серверу для анализа логов.
        Читать дальше →
      • Улучшаем качество кода с помощью автоматических утилит

          Достаточно большое число людей используют github для хранения исходного кода своих проектов. Идеология fork/pull request позволяет достаточно легко выполнять обзоры кода (code review). Обзоры кода в значительной степени позволяют поднять качество кодирования в проекте. Однако, часто человек выполняющий обзор кода вынужден заниматься проверкой стандартов кодирования принятых в проекте, и прочих очевидных вещей не связанных непосредственно с задачей решенной в pull запросе. Такие ошибки кодирования могут и должны быть обнаружены автоматически.
          Читать дальше →
        • Браузерный TTD: закрытое тестирование сетевой игры

            Всем доброго времени суток. Особенно любителям игры Transport Tycoon Deluxe. Напомню, что я занимаюсь портированием OpenTTD на JS и в последние время работал над портированием сетевой части игры. Сейчас промежуточные сборки позволяют играть по сети на одном игровом сервере. На данный момент сервер может принять до 255 игроков, а в одной игровой сессии может быть созданно до 15 компаний. Компанией может управлять как один, так и несколько человек (бекэнд — обычный OpenTTD сервер). Что бы не ударить в грязь лицом, я бы хотел провести закрытое тестирование.
            Читать дальше →
          • Transport Tycoon Deluxe / Emscripten ч. 2

              Transport Tycoon (Транспортный магнат) — изрядно древняя, но до сих пор доставляющая, особенно маньякам, игра в жанре экономической RTS. /.../

              Также существует OpenTTD, открытый продукт маньяццтва unixоидов, вследствие чего от игры можно не отвлекаться даже в сортире и метро, установив её на коммуникатор или КПК.
              lurkmore
              Читать дальше →
            • Портируем C/C++ библиотеку на JavaScript (xml.js)

              • Translation
              Статья является дополненным переводом статьи «HOWTO: Port a C/C++ Library to JavaScript (xml.js)» (автор: azakai). Автор оригинальной статьи имеет приличный опыт портирования C/C++ библиотек в JavaScript. В частности, он успешно портировал lzma.js и sql.js. В своей статье он описывает общую схему портирования C/C++ кода на примере libxml – открытой библиотеки для валидации XML.
              Читать дальше →
            • Redmine. Настраиваем jabber-оповещения за 5 минут

                Redmine – прекрасная система для управления проектами и отслеживания ошибок. Однако (из моего личного опыта использования), она не способна выстроить в работающем коллективе самоорганизующуюся систему контроля ошибок. Разработчики бывают слишком заняты для того, чтобы отслеживать все комментарии, относящиеся к их задачам; с другой стороны автор, создавший ту или иную задачу, точно так же редко в неё заглядывает.
                Читать дальше →
              • GCC Profile-guided optimization

                  Profile-guided optimization (далее PGO) — техника оптимизации программы компилятором, нацеленная на увеличение производительности выполнения программы. В отличии от традиционных способов оптимизации анализирующих исключительно исходные коды, PGO использует результаты измерений тестовых запусков оптимизируемой программы для генерации оптимального кода.
                  Читать дальше →
                • Опыт статического анализа Qt-программы с использованием PVS-Studio

                    imageДанная статья – результат моего первого опыта статического анализа достаточно большой программы (1665 файлов с исходными текстами на данный момент). Кроме того, это мой первый опыт использования среды Microsoft Visual Studio. Разработка анализируемой программы велась исключительно в Ubuntu, Eclipse CDT, компилятор GCC.

                    Читать дальше →
                  • PocoCapsule: делаем «Hello world» проще

                      image Статья рассказывает об опыте знакомства с IoC-контейнером PocoCapsule (C++), возникших трудностях и способах их преодоления. Помимо прочего статья включает небольшой пример для быстрого старта с PocoCapsule (упрощенный проект «Hello World» с официального сайта).

                      Читать дальше →
                    • JBrowser: реинкарнация MozSwing

                        imageВспомним, что же такое MozSwing. MozSwing — единственное адекватное (по моему мнению) бесплатное и кросс-платформенное решение для встраивания браузера как компонента swing. Но, как ни печально это признавать, проект умер еще на той стадии, когда в нем оставалось слишком много ошибок. Эти ошибки, а так же просчеты в архитектуре, не позволяют использовать это решение «как есть», для ваших проектов. С непреодолимым желанием исправить это, я взялся за работу и кое-что у меня получилось.

                        (Статья о интеграции браузера Mozilla, как Swing компонента).
                        Читать дальше →