Pull to refresh
33
0
Павел Франков @twenty

Улучшаю Инфраструктуру фронтенда

Send message

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

Reading time14 min
Views969K


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

Арифметика с плавающей запятой почему-то считается экзотической областью компьютерных наук, учитывая, что соответствующие типы данных присутствуют в каждом языке программирования. Я сам, если честно, никогда не придавал особого значения компьютерной арифметике, пока решая одну и ту же задачу на CPU и GPU получил разный результат. Оказалось, что в потайных углах этой области скрываются очень любопытные и странные явления: некоммутативность и неассоциативность арифметических операций, ноль со знаком, разность неравных чисел дает ноль, и прочее. Корни этого айсберга уходят глубоко в математику, а я под катом постараюсь обрисовать лишь то, что лежит на поверхности.
Читать дальше →
Total votes 245: ↑242 and ↓3+239
Comments75

40 механик для социальных игр

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

Раф Костер приобрёл известность как создатель дизайна Ultima Online и креативный директор проекта Star Wars Galaxies, после чего основал собственную студию.
Читать дальше →
Total votes 102: ↑92 and ↓10+82
Comments33

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

Reading time10 min
Views4.2K
 
Снижаем нагрузку на процессор в 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 с использованием нижеизложенных примеров программного кода и выражена в процентах. Естественно, результаты будут варьироваться в зависимости от конфигурации машины.

Читать дальше →
Total votes 57: ↑46 and ↓11+35
Comments19

Вводим текст в TextInput по маске

Reading time2 min
Views3.4K
image

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



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

Что из этого получилось...
Total votes 49: ↑38 and ↓11+27
Comments11

Сделай сам: любимые персонажи из бумаги

Reading time2 min
Views3.9K
Привет всем Хабралюдям!
Сегодня я хочу поделиться с сообществом одним очень затягивающим и увлекательным способом убить свободное время и просто отвлечься.

Читать дальше →
Total votes 217: ↑199 and ↓18+181
Comments125

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

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

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

Читать дальше →
Total votes 39: ↑35 and ↓4+31
Comments84

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

Reading time4 min
Views31K
Привет Хабр! Давно не писал. Да это и понятно. Защита диссертации, получение PhD, а сейчас ещё и активный поиск работы — всё это занимает очень много драгоценного времени. Но разговор сегодня пойдёт не о том. Хотелось бы поделиться с Вами, уважаемые хабралюди, ресурсами и описанием процесса подготовки к телефонному техническому интервью с Гуглом, первый технический этап которого я уже прошёл, и теперь готовлюсь ко второму, который будет в пятницу.
Читать дальше →
Total votes 207: ↑182 and ↓25+157
Comments99

Простые догмы при работе с цветом в интерфейсах

Reading time5 min
Views111K
image

Привет, username!

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

Читать дальше →
Total votes 149: ↑131 and ↓18+113
Comments128

Верстка писем. Снова баги

Reading time3 min
Views16K
Автор изображения Eva Galesloot

Привет!

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

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

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

Ниже приведу несколько новых багов, которые стоит учесть при подготовке писем, а разработчикам — закрыть их.
Читать дальше →
Total votes 11: ↑10 and ↓1+9
Comments32

Новый программерский жаргон

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

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

Читать дальше →
Total votes 411: ↑373 and ↓38+335
Comments193

CSS3: жизнь без префиксов

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

Проблема очевидна. Нужен способ облегчить работу с префиксами.

Естественно, перестать использовать префиксы было бы неразумно. Но переложить обязанность по их генерации на существующие специально для этого инструменты вполне возможно. Я попробовал перечислить возможные варианты.
Читать дальше →
Total votes 68: ↑62 and ↓6+56
Comments88

Продвинутые шаблоны редактора Wordpress

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

image
Шаблоны в редакторе записи
Total votes 54: ↑46 and ↓8+38
Comments44

Сканируем в 3D с помощью фотоаппарата или 123D Catch

Reading time3 min
Views133K
В современном мире трехмерные технологии стали очень популярны. 3D стремительно и разнообразно входит в жизнь даже обычного человека. Начиная от 3D телевизоров, 3D сканеров и даже принтеров. Хотя последние два устройства в большей степени пока доступны только специалистам. Но технологии не стоят на месте. Появляются трехмерные принтеры стоимостью около $2000, что уже приближает время, когда они появятся, если не у каждого школьника/студента на столе, то как минимум, у каждого инженера или дизайнера. Что касается методов получения трехмерной модели с реального физического объекта, то тут тоже не все однозначно. Требуются наличие либо дорогостоящего лазерного сканера, либо можно попытать счастье с помощью лазерного строительного уровня, веб-камеры и специального программного обеспечения. Наличием всех этих вещей тоже не может похвастаться абсолютно любой человек.
Однако есть очень простой способ “сканировать” объект в 3D модель, используя обычный цифровой фотоаппарат. Как это сделать? Об этом и пойдет речь далее.
Читать дальше →
Total votes 136: ↑133 and ↓3+130
Comments59

Подборка видео с различных конференций

Reading time2 min
Views4.2K
На конференции попасть получается не всегда, а умных людей послушать хочется. Решил собрать воедино скопившиеся ссылки на видеоматериалы. Надеюсь кому то пригодится.

Известные
Читать дальше →
Total votes 154: ↑151 and ↓3+148
Comments50

Краткий список WYSIWYG редакторов от Марка Андреева

Reading time4 min
Views358K

Однажды мне потребовался WYSIWYG редактор, я помнил как он выглядит, его функции, но не помнил названия. Через 45 минут я все же его нашел… Тогда я поставил перед собой задачу помочь многим, в том числе и себе: сделать сводный список всех чуть более известных WYSIWYG редакторов.
Читать дальше →
Total votes 201: ↑178 and ↓23+155
Comments89

Как сделать один сайт для всех устройств (Responsive Web Design)

Reading time3 min
Views290K
Вчера была опубликована хорошая статья «Веб-дизайн. Каждому устройству свое представление». Несмотря на неплохие размышления, к сожалению, вывод в ней довольно глупый. А именно:

«Нужно определить, какими устройствами могут пользоваться ваши посетители, проработать и создать для этих устройств представление вашего сайта, определить устройство посредством проверки заголовков браузеров, и отправить наиболее подходящее представление

Почему это глупо


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



Это скриншот из презентации «Beyond the mobile web by yiibu» (очень рекомендую).

Во-вторых, если вы не facebook или yandex, скорее всего, вы не потянете создание и поддержку разных версий сайта для каждого устройства. Да и это не имеет особого смысла. Потому что ситуация становится похожа на реалии пятнадцатилетней давности. Тогда делали сайт «под браузер», а сейчас автор предлагает делать сайт «под устройство».

Как сделать один сайт для всех устройств

Читать дальше →
Total votes 159: ↑148 and ↓11+137
Comments75

Оптимизация скорости мобильных сайтов

Reading time8 min
Views10K
Вместе с ростом мобильного интернета растёт и необходимость оптимизации скорости работы мобильных сайтов. Даже самые современные смартфоны на Android, iOS, WebOS, BlackBerry OS и др. обладают процессорами с частотой не более 1Ghz, а скорости 3G можно считать достаточно медленными (скорость загрузки в 3 раза меньше DSL).

Мобильные устройства унаследовали проблемы “больших” машин: от количества http-запросов до эффективности работы JavaScript.

Особенности мобильных устройств


Кроме того, что они часто помещаются в карман и их легче потерять, существует несколько ключевых отличий мобильных устройств по отношению к десктопам:
  • маленькое разрешение экрана;
  • медленные соединения;
  • ограниченный размер кэша;
  • много различных устройств и форм-факторов;
  • низкая мощность процессоров;
  • широкая поддержка HTML5;
  • относительно новые браузеры (в этом мире не знают о IE6).

Читать дальше →
Total votes 67: ↑60 and ↓7+53
Comments38

Видеоуроки по Python от Khan Academy

Reading time1 min
Views14K
Некоммерческая организация Khan Academy начала публиковать микролекции по языку программирования Python для начинающих. Первый урок посвящён написанию простой программки вычисления факториала с использованием цикла.



P.S. Khan Academy специализируется на массовом образовании. С 2006 года её основатель Салман Хан записал более 2300 микролекций в области науки и математики. По данным на июнь 2011 года, у канала Khan Academy на YouTube зафиксировано около 64 млн просмотров.

Khan Academy на YouTube
Total votes 67: ↑63 and ↓4+59
Comments28

Проектирование интерактивных продуктов в Fireworks

Reading time12 min
Views9.7K
Эта статья была опубликована еще в 2008 году на официальном сайте Adobe. В ней Nick Myers (ведущий визуальный дизайнер компании Cooper) рассказывает о преимуществах Fireworks в проектировании интерактивных продуктов.

Ну что же, сотрясем в очередной раз нерушимые столпы Photoshop, и неокрепшего юнца Axure?
Total votes 63: ↑61 and ↓2+59
Comments19

Копирование объектов с помощью ByteArray

Reading time4 min
Views4.9K

Копирование простых объектов


Чаще всего ByteArray используют для копирования объектов. AMF сериализатор и десериализатор (не люблю эти слова, но не нашёл подходящего перевода) доступен через ByteArray API. Для дублирования объектов с помощью ByteArray мы будем использовать методы writeObject и readObject:

// Создаём пустой ByteArray
var stream:ByteArray = new ByteArray();
// Создаём объект
var parameters:Object = { age : 25, name : "Bob" };
// «Переводим» объект в формат AMF и сохраняем его в ByteArray
stream.writeObject( parameters );
// Сбрасываем позицию
stream.position = 0;
// Считываем объект
var objectCopy:Object = stream.readObject();

Читать дальше →
Total votes 44: ↑34 and ↓10+24
Comments10
1

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity