• Что нужно знать про арифметику с плавающей запятой



    В далекие времена, для IT-индустрии это 70-е годы прошлого века, ученые-математики (так раньше назывались программисты) сражались как Дон-Кихоты в неравном бою с компьютерами, которые тогда были размером с маленькие ветряные мельницы. Задачи ставились серьезные: поиск вражеских подлодок в океане по снимкам с орбиты, расчет баллистики ракет дальнего действия, и прочее. Для их решения компьютер должен оперировать действительными числами, которых, как известно, континуум, тогда как память конечна. Поэтому приходится отображать этот континуум на конечное множество нулей и единиц. В поисках компромисса между скоростью, размером и точностью представления ученые предложили числа с плавающей запятой (или плавающей точкой, если по-буржуйски).

    Арифметика с плавающей запятой почему-то считается экзотической областью компьютерных наук, учитывая, что соответствующие типы данных присутствуют в каждом языке программирования. Я сам, если честно, никогда не придавал особого значения компьютерной арифметике, пока решая одну и ту же задачу на CPU и GPU получил разный результат. Оказалось, что в потайных углах этой области скрываются очень любопытные и странные явления: некоммутативность и неассоциативность арифметических операций, ноль со знаком, разность неравных чисел дает ноль, и прочее. Корни этого айсберга уходят глубоко в математику, а я под катом постараюсь обрисовать лишь то, что лежит на поверхности.
    Читать дальше →
  • 40 механик для социальных игр

    • Перевод
    Разработчик игр Раф Костер (Raph Koster) составил всеобъемлющий список базовых правил, на которых основаны социальные отношения в играх (мультиплеер, параллельная игра и т.д.). Эти правила для разработчиков игры заменяют азбуку. Во многом они пересекаются с принципами игровой механики, которые уже обсуждались на Хабре.

    Раф Костер приобрёл известность как создатель дизайна Ultima Online и креативный директор проекта Star Wars Galaxies, после чего основал собственную студию.
    Читать дальше →
  • Снижаем нагрузку на процессор в Adobe AIR

       
      Снижаем нагрузку на процессор в Adobe AIR

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

      Один из самых простых способов резко снизить нагрузку на ЦП основан на изменении частоты обновлений окна в секунду (Framerate Throttling). В этой статье я объясню метод с framerate'ами и покажу, как наилучшим образом использовать данный метод в Ваших программах.

      Примечание: Чтобы использовать данный метод Вы должны иметь основные понятия об ActionScript'е и программировании на AIR.

      Что же такое замедление framerate'ов (Framerate Throttling)?

      Замедление framerate'ов — это техника, позволяющая контролировать framerate'ы программы, что, в свою очередь, позвляет увеличить её производительность при использовании (Active) и снизить количество потребляемые ресурсов когда она не используется (Idle). Как и в ActionScript 3, разрабочики имеют необычнайно полезную строчку кода в своём распоряжении — Stage.frameRate. Она позволяет изменять количество обновлений окна программы в секунду на лету. В предыдущих версиях ActionScript у нас были существенные проблемы с внедрением этой функции в интегрированную среду разработки (IDE). К счастью, времена изменились и теперь сложные программы не "висят", задерживаясь в памяти компьютера в фоновом режиме.

      Как же использовать Framerate Throttling?

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

      Примечание: производительность замерена на Macbook Pro 2.8 GHz Intel Core 2 Duo с использованием нижеизложенных примеров программного кода и выражена в процентах. Естественно, результаты будут варьироваться в зависимости от конфигурации машины.

      Читать дальше →
    • Вводим текст в TextInput по маске

        image

        Здравствуйте уважаемые читатели.



        Не так давно (в одном из flex-проектов) понабилось отображать текст в поле ввода (TextInput) в определенном формате. Например, при вводе городского номера телефона нам необходимо в конечном итоге отобразить его следующим образом «(111) 22-33-44», при этом необходимо, чтобы пользователь видел шаблон ввода, например, «(___) __-__-__» и соответственно ориентировался по нему при использовании поля.

        Что из этого получилось...
      • Медицина будущего. Взгляд программиста

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

        Так вот сегодня прочитал пост "Медицина: электронные истории болезней — взгляд со стороны врача" и решил поделиться своими соображениями как программиста на возможный вариант реализации подобной системы.

        Читать дальше →
      • Я хочу работать в Google! Телефонное интервью (часть 1)

          Привет Хабр! Давно не писал. Да это и понятно. Защита диссертации, получение PhD, а сейчас ещё и активный поиск работы — всё это занимает очень много драгоценного времени. Но разговор сегодня пойдёт не о том. Хотелось бы поделиться с Вами, уважаемые хабралюди, ресурсами и описанием процесса подготовки к телефонному техническому интервью с Гуглом, первый технический этап которого я уже прошёл, и теперь готовлюсь ко второму, который будет в пятницу.
          Читать дальше →
        • Простые догмы при работе с цветом в интерфейсах

          • Tutorial
          image

          Привет, username!

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

          Читать дальше →
        • Верстка писем. Снова баги

            Автор изображения Eva Galesloot

            Привет!

            Прежде всего хочу принести извинения в адрес mail.ru и лично Андрею Сумину AndrewSumin за пост, написанный сгоряча. Проблема верстки писем изрядно наболела, но местами все не так плохо как казалось. Присутствуют и проблемы.

            Касательно mail.ru на данный момент претензий почти не имею. Верстать письма под эту вебморду так же приятно, как и для гуглопочты. Очень приятно видеть, что русские вебморды стали поддерживать фоновые изображения.

            Знаете чего очень не хватает? Фичлиста от разработчиков почтовых клиентов и вебморд. Было бы очень здорово узнавать из первых рук, какие фичи ввели в обращение, а какие наоборот — урезали. Это облегчило бы головную боль верстальщика, да и пользователь перестал бы получать кривые письма. Да, это очень важная информация.

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

            • Перевод
            Посетителям сайта stackoverflow.com был задан вопрос: «Какие программерские термины вы придумали, так чтобы они стали популярны в ваших кругах (то есть вы слышали, что кто-то их повторяет)?

            Ниже — вольный перевод самых популярных ответов.

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