• Пишем игровой движок. Часть первая

    • Translation

    Введение


    Что такое игровой движок?


    Проще говоря, движком является набор систем, которые упрощают наиболее часто используемые функции игры. Движок состоит из подсистем, контролирующих определенные части игры. Большинство игр имеют следующие подсистемы:
    • Графическая подсистема
    • Подсистема ввода
    • Звуковая подсистема
    • Системное ядро

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

    image

    Я работаю в сфере фриланса уже более 7 лет и успел побывать как в роли исполнителя, так и работодателя. Вы наверняка читали не один пост о подборе удаленных сотрудников. А я бы хотел представить «взгляд с обратной стороны», от лица фрилансера. Сегодня мы научимся подбирать себе клиентов.

    Работать я рекомендую только на крупнейших фриланс-биржах, где в день публикуются сотни проектов. Например, free-lance.ru, weblancer.net и freelancejob.ru. Обязательно приобретите там pro-версии аккаунтов – обойдется это недорого, но без них вас и за человека-то не посчитают.
    Читать дальше →
  • Этап подготовки проекта в теории

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

    Что же такое проект?
    Читать дальше →
  • Избранное Хабра в PDF

      Всех с наступившими!

      image

      Так как я люблю все упорядочивать и каталогизировать, давно вертелась мысль завернуть избранные топики с хабра в PDF и отсортировать по датам.
      Собственно выделилось немного свободного времени в праздники, решил задуманное осуществить и поделиться с хабром

      UPD:
      — Исправлена ошибка «too large on page» (подробнее на github) Спасибо Bifidokk и StreetAngel
      — Авторы топиков сделаны ссылкой
      — Добавлена возможность сохранять избранное только из указанных блогов

      Читать дальше →
    • Некоторые тонкости ИТ-аутсорсинга

      С огромным интересом посмотрел статьи, посвященные ИТ-аутсорсингу, которые размещены на хабре.
      Как владелец не большой аутсорсинговой компании, позволю себе выразить свое мнение по поводу плюсов и минусов данного явления. Рассказать с какими трудностями приходится сталкиваться при работе в этой сфере, и как их можно избежать.

      Сразу хочется сказать, что я не хочу останавливаться на теоретических аспектах построения ИТ-систем (ITIL, ITSM). В них описываются стандарты и подходы, к которым необходимо стремиться (что я стараюсь делать изо всех сил), но которые на практике не совсем все удается реализовать

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

      Аутсорсинг — это ОТВЕТСТВЕННОСТЬ ЗА ПРОЦЕСС, которую берет на себя сторонний подрядчик.

      Именно процесс целиком. ИТ-аутсорсинг — соответственно ответственность за ИТ-процессы компании-клиента. Процесс — упорядоченный и регламентированный набор действий для достижения поставленных целей. Если ИТ-процессов нет, или они не четкие — задача аутсорсера создать или нормализовать их. Как мне всегда казалось, и в чем я убеждаюсь сейчас — только такой подход «полной ответственности за процесс» даст возможности аутсорсеру получить максимальную прибыль и верных клиентов.
      На практике мы наблюдаем ряд услуг, которые предлагают решить только часть проблем в поддержании работоспособности ИТ-систем. Я осмелюсь их классифицировать и дать свою оценку.
      Читать дальше →
    • Алгоритм Дейкстры. Поиск оптимальных маршрутов на графе

      Из многих алгоритмов поиска кратчайших маршрутов на графе, на Хабре я нашел только описание алгоритма Флойда-Уоршалла. Этот алгоритм находит кратчайшие пути между всеми вершинами графа и их длину. В этой статье я опишу принцип работы алгоритма Дейкстры, который находит оптимальные маршруты и их длину между одной конкретной вершиной (источником) и всеми остальными вершинами графа. Недостаток данного алгоритма в том, что он будет некорректно работать если граф имеет дуги отрицательного веса.

      Для примера возьмем такой ориентированный граф G:

      image

      Читать дальше →
    • Нативные интерфейсы в Qt

        Qt Logo

        Эта статья посвящена программированию GUI на базе фреймворка Qt от Nokia. Мы рассмотрим способы разработки интерфейсов для нативного отображения на платформах Windows, Linux и Mac OS X.

        Презентацию[1] вёл Йенс Бач-Вииг (Jens Bache-Wiig) — разработчик Qt (с 2005 года), занимающийся интерфейсами (look and feel).

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

        Итак, приступим. Каждое графическое окружение имеет свой свод правил (User Interface Guidelines, UIG) по созданию интерфейсов, предназначенных для этих окружений. Из основных можно отметить такие руководства как Windows User Experience Interaction Guideline, Apple Human Interface Guideline, KDE User Interface Guideline и GNOME HID. Каждое из этих руководств «определяет положение кнопочек и рюшечек» конкретного окружения. Фреймворк Qt, в свою очередь, осуществляет поддержку всех этих руководств, предоставляя разработчику возможность создавать программы с использованием виджетов, «подстраивающихся» под окружение.

        Читать дальше →
        • +108
        • 52.4k
        • 9
      • Знакомимся с OpenGL

        OpenGL


        Знакомство с OpenGL нужно начать с того, что OpenGL — это спецификация. Т.е. OpenGL лишь определяет набор обязательных возможностей. Реализация же зависит от конкретной платформы.
        OpenGL является кроссплатформенным, независимым от языка программирования API для работы с графикой. OpenGL — низкоуровневый API, поэтому для работы с ним неплохо иметь некоторое представление о графике в целом и знать основы линейной алгебры.
        Читать дальше →
      • Проблема трех раскладок в Linux

          Имея одновременно три раскладки (английскую, русскую, украинскую) всегда в них путался, так как отличить их не глядя на индикатор не просто, а при потребности украинской раскладки, добавлять её и убирать каждый раз неудобно. Решается очень просто, расширением русской раскладки четырьмя дополнительными украинскими буквами (є, ї, і, ґ) и апострофом (’). Способ не претендует на уникальность, но здесь никто вроде бы еще не описывал.
          Читать дальше →
        • История одной красивости или псевдотрёхмерное изВращение

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

          Застывшее изВращение

          Конечно, для современных видеокарт такая задача является примитивной, однако в те времена на 3.5 мегагерцовом «Cпектруме» о подобных мощностях можно было лишь помечтать. Так что забудьте о графических процессорах, матрицах вращения и нереально ресурсоёмких вычислениях и попробуйте хотя бы примерно прикинуть, каким образом можно реализовать вот такую красивость.

          Любопытно? Тогда добро пожаловать под кат!

          Читать дальше →
        • Как безопасно разрушить объект. И другие мысли

            Недавно разглядывал вакансии одной известной конторы, задумывался над вопросам (которые, кстати, на всех их вакансиях одинаковые). И решил написать заметку по самому интересному (на мой взгляд) аспекту первого же вопроса. Может быть доберусь и до других, а пока предлагаю задуматься, надо ли делать деструкторы виртуальными?

            Ответ не так уж однозначен, и чтобы заманить вас под кат скажу, что в реализации STL вы обнаружите всего несколько виртуальных деструкторов.

            Каким же должен быть полный ответ на вопрос про деструкторы?
            Читать дальше →
          • Обзор гонораров фри-лансеров

              Сайт по поиску удаленной работы Free-lance.ru провел исследование гонораров фри-лансеров. Результаты опубликованы сегодня в газете «Коммерсант».
              Как выяснилось, средние месячные заработки фри-лансеров составляют 44 000 рублей. При этом средняя зарплата в России – 20 000 рублей.
              Читать дальше →
            • Пишем своё первое приложение на Android


              Предисловие


              Цель данного поста — с одной стороны поделиться своим успешным опытом старта разработки приложений на платформе Android и с другой стороны поспособствовать развитию рынка софта для этой замечательной и бурно растущей платформы за счёт (без ложной скромности скажу) возможно Вас, прочитавших данный пост. В сети, конечно, можно найти материалы на тему разработки приложения «чуть сложнее, чем helloworld», но как правило они разрозненные и в них не описываются различные мелкие подводные камешки. В данном посте мы рассмотрим полный цикл разработки приложения, начиная с чистого компьютера до готового apk-файла. Под катом скрины.
              Читать дальше →
              • +108
              • 1605k
              • 95
            • Работа со звуком на практике

                Здравствуйте!

                В свое время я не без удовольствия прочитал замечательную статью «Гитаризм для линуксоида — why not?». И решил написать небольшое продолжение этой статьи и рассказать о некоторых вещах более практического плана, а именно создать небольшое руководство для тех, кто, скажем, неожиданно решил увековечить свое творчество путем записи относительно непростого гитарного произведения. :)
                Итак, поехали.

                Читать дальше →
              • Создание GTK+ апплета для LXPanel

                  Статья о том, как написать свой апплет для LXPanel. Разработчики до сих пор не написали документации, поэтому учиться приходится по исходникам, которые наоборот богаты комментариями.
                  Я решил разобрать наглядно один пример и самый простой способ сборки в готовый *.so плагин.




                  Сборка идёт под Ubuntu, необходимы минимальные знания по С и GTK+.
                  Читать дальше →