Эта статья является переводом цикла из четырёх статей «Linear algebra for game developers», написанных David Rosen и посвящённых линейной алгебре и её применению в разработке игр. С оригинальными статьями можно ознакомиться тут: часть 1, часть 2, часть 3 и часть 4. Я не стал публиковать переводы отдельными топиками, а объединил все статьи в одну. Думаю, что так будет удобнее воспринимать материал и работать с ним. Итак приступим.
User
Теория цвета
2 min
299KПервое впечатление — это все. Пословица «По одежке встречают, по уму провожают» актуальна не только в жизни, но и в дизайне. Впечатление от дизайна состоит из множества факторов, и один из важнейших — это цвет.
Понять, какие цвета сочетаются друг с другом не всегда просто, в этой статье описаны основы теории цвета, которые пригодятся при выборе цветовой схемы для дизайна сайта. Начнем с самого простого.

Основные цвета палитры — красный, желтый и синий. Если говорить об основных цветах на экранах различных устройств — это RGB, красный, зеленый и синий.
Понять, какие цвета сочетаются друг с другом не всегда просто, в этой статье описаны основы теории цвета, которые пригодятся при выборе цветовой схемы для дизайна сайта. Начнем с самого простого.
Основные цвета (Primary Colors)

Основные цвета палитры — красный, желтый и синий. Если говорить об основных цветах на экранах различных устройств — это RGB, красный, зеленый и синий.
+134
Щелевая съёмка: сжатие времени по горизонтали
2 min
127K
Фото: Jay Mark Johnson
Перед вами оригинальный снимок, без обработки в фоторедакторе или применения каких-то художественных эффектов. Исключительно точное документальное фото. Только это не картина одного момента, как в обычной фотографии. В кадре вместились события, которые происходили в течение около 30 секунд на промежутке пространства шириной 1 пиксел. Снимок сделан методом щелевой фотографии.
+137
Каталог сервисов для поиска контактов заказчиков и исполнителей на free-lance.ru
2 min
91K
картинку предоставили free-free-lance.com
Сразу после объявления администрацией free-lance.ru запрета на публикацию контактных данных заказчиков и фрилансеров на сайте, начали появляться проекты, позволяющие обойти этот бредовый запрет. Пока я знаю три таких сайта:
• free-lance-contacts.ru — запустился раньше всех, включает в себя базу в 17 тыс. контактов, собранных из открытого доступа в августе. Есть функционал добавления своих контактов, аппрув (чтобы левые люди не выдавали себя за раскрученных фрилансеров) посредством личного сообщения автору проекта на фрилансе.
• free-free-lance.com — разработка бывших сотрудников free-lance.ru, есть функционал добавления своих контактов. База пополняется самими фрилансерами. Работает верификация аккаунтов с помощью кодовой фразы, которую выбирает пользователь.
• freelancecontacts.net — запустились, сайт пополняется данными фрилансеров после верификации.
• freefreelance.ru — не хватает верификации аккаунтов
• find-freelancer.pro — отличается наличием открытого каталога фрилансеров, поиск фрилансеров работает по собственной базе и популярным биржам фриланса (например, если контакты пользователя закрыты на free-lance.ru, вы сможете связаться с ним на weblancer — очень удобно).
• free-lance-surveys.ru — сервис обмена отзывами и поиска контактов фрилансеров.
Заказчики, работодатели, не проходите мимо! Упростите жизнь фрилансерам и себе. По своему опыт могу сказать, что фрилансеры часто гуглят тех, чьи заказы заинтересовали — поэтому не ленитесь, добавляйте свои контакты в эти базы. Давайте уже дадим понять некоторым любителям грести всё под себя, что опускать железные занавесы на вебе — бесполезно.
+77
Размытие изображения фильтром Kuwahara
1 min
28KФильтр Kuwahara выполняет нелинейную фильтрацию изображений с сохранением резких краев. После фильтрации изображение похоже на грубо нарисованную красками, картину.


+33
Новые 5 способов ускорить запросы API Facebook
4 min
19KПрошлой осенью я публиковал на Хабре пост Пять способов ускорить запросы API Facebook на практике, который оказался неплохим сборником рецептов. За это время Facebook API сильно изменился, став еще лучше. Теперь я редко встречаю задачи, с которыми я бы не смог справиться за один HTTP запрос к API. А все благодаря новым возможностям, о которых я и расскажу сейчас.

Вот какие способы были в прошлый раз:

Вот какие способы были в прошлый раз:
- Запрашиваем только необходимые поля
me?fields=id,name,birthday - Запрашиваем данные нескольких объектов в одном запросе
?ids=4,501012028 - Используем фильтрацию и пагинацию
me/friends?limit=10&offset=10 - Используем запросы FQL
fql?q=SELECT uid, name, birthday_date FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) - Отправляем Batch Request с несколькими запросами
batch=[{«method»:«GET», «relative_url»:«me»},{«method»:«GET», «relative_url»:«me/friends?limit=50»}]
+56
Восстановление неравномерно освещенных изображений
2 min
25KДля улучшения визуального качества изображений, снятых в условиях слабой освещенности, и изображений с низким уровнем контраста, существует множество алгоритмов. Выбор наиболее подходящего алгоритма и его параметров является задачей нетривиальной и зависит от обрабатываемого изображения.



+24
Руководство новичка по эксплуатации компоновщика
32 min
217KDavid Drysdale, Beginner's guide to linkers (http://www.lurklurk.org/linkers/linkers.html).
Цель данной статьи — помочь C и C++ программистам понять сущность того, чем занимается компоновщик. За последние несколько лет я объяснил это большому количеству коллег и наконец решил, что настало время перенести этот материал на бумагу, чтоб он стал более доступным (и чтоб мне не пришлось объяснять его снова). [Обновление в марте 2009: добавлена дополнительная информация об особенностях компоновки в Windows, а также более подробно расписано правило одного определения (one-definition rule).
Типичным примером того, почему ко мне обращались за помощью, служит следующая ошибка компоновки:
Если Ваша реакция — 'наверняка забыл extern «C»', то Вы скорее всего знаете всё, что приведено в этой статье.
Цель данной статьи — помочь C и C++ программистам понять сущность того, чем занимается компоновщик. За последние несколько лет я объяснил это большому количеству коллег и наконец решил, что настало время перенести этот материал на бумагу, чтоб он стал более доступным (и чтоб мне не пришлось объяснять его снова). [Обновление в марте 2009: добавлена дополнительная информация об особенностях компоновки в Windows, а также более подробно расписано правило одного определения (one-definition rule).
Типичным примером того, почему ко мне обращались за помощью, служит следующая ошибка компоновки:
g++ -o test1 test1a.o test1b.o
test1a.o(.text+0x18): In function `main':
: undefined reference to `findmax(int, int)'
collect2: ld returned 1 exit status
Если Ваша реакция — 'наверняка забыл extern «C»', то Вы скорее всего знаете всё, что приведено в этой статье.
+191
+32
Клиент-серверное общение в Unity3d
10 min
51KВсем привет! Мне всегда безумно интересно читать статьи про чужой реальный опыт, и успешное прохождение сквозь россыпи грабель или граблей. Посему, данной статьей хочу начать делиться своим скромным опытом из мира игростроя на юнити, а так же побольше узнать о чужом опыте работы с юнити.
Итак, в ноябре прошлого года наша команда начала делать клиентскую сессионную ммошечку — катайся на машинах, стреляй врагов. Надо сказать, что у команды уже был опыт не успешного проекта на юнити, это были 3д гонки для вконтакта. Так что тема машинок в юнити была уже знакома и на этом планировалось сэкономить. Cамое первое с чего было решено начать, это максимально быстро сделать пруф оф концепт — демку игры максимально точно показывающую геймплей. Цель данного мероприятия понятна — как можно раньше отсечь все то, что не впишется в игру. Кроме того, предстояло также выбрать серверный движок. С клиентом все было понятно сразу, Unity3d наше все, но что выбрать в качестве серверного движка? Вот в чем вопрос. Остановлюсь на этом по подробнее.
Итак, в ноябре прошлого года наша команда начала делать клиентскую сессионную ммошечку — катайся на машинах, стреляй врагов. Надо сказать, что у команды уже был опыт не успешного проекта на юнити, это были 3д гонки для вконтакта. Так что тема машинок в юнити была уже знакома и на этом планировалось сэкономить. Cамое первое с чего было решено начать, это максимально быстро сделать пруф оф концепт — демку игры максимально точно показывающую геймплей. Цель данного мероприятия понятна — как можно раньше отсечь все то, что не впишется в игру. Кроме того, предстояло также выбрать серверный движок. С клиентом все было понятно сразу, Unity3d наше все, но что выбрать в качестве серверного движка? Вот в чем вопрос. Остановлюсь на этом по подробнее.
+20
Хочешь быть iOS разработчиком? Будь им!
2 min
389KTutorial
На хабре в прошлом месяце была опубликована статья Конкурс ВК: Мессенджер для Android. Как это было!, в которой автор поделился своими мыслями о конкурсе и опубликовал список ресурсов и статей, которые помогли ему в создании приложения. Так как в последнее время я начал изучать разработку под iOS, то у меня скопилось некоторое количество ссылок, которые могут быть полезны для начинающих. Поэтому я последую его примеру и сделаю то же самое, только для своей платформы. Надеюсь, кому-нибудь они окажутся полезны и сэкономят немного времени.


+210
Статус публичных API: онлайн + статистика за неделю
1 min
3KПо адресу api-status.com существует сервис, позволяющий отслеживать состояние публичных API в более-менее реальном времени (интервал обновления составляет 5 минут).
Выглядит это так:

Таким образом, кроме сиюминутного статуса можно видеть статистику за неделю.
Сайт может быть полезен для системных администраторов, занимающихся поддержкой веб-серверов клиентов (клиентские приложения частенько используют публичные API), и разработчикам (по той же причине).
Спасибо за внимание.
Выглядит это так:

Таким образом, кроме сиюминутного статуса можно видеть статистику за неделю.
Сайт может быть полезен для системных администраторов, занимающихся поддержкой веб-серверов клиентов (клиентские приложения частенько используют публичные API), и разработчикам (по той же причине).
Спасибо за внимание.
+16
Локализация мобильных приложений. Часть 2
6 min
16KЕсли по-честному, то эта статья не должна являться продолжением первой моей статьи о мгновенном изменении языка iOS-приложений. Если первая статья была написана программистом для программистов, то в этой заметке пойдет речь непосредственно о процессе локализации, применимом к любой мобильной (и не очень) платформе.
Но мы меня простим и сделаем вид, что это цикл статей ;).
Итак. В процессе разработки большинства мобильных приложений возникает необходимость локализации. И в этот неловкий момент может возникнуть ряд правомерных вопросов: на какие языки переводить, что именно переводить, куда обращаться, на какие мелочи стоит обратить внимание.
Попробуем ответить на каждый из этих вопросов по отдельности.
Но мы меня простим и сделаем вид, что это цикл статей ;).
Итак. В процессе разработки большинства мобильных приложений возникает необходимость локализации. И в этот неловкий момент может возникнуть ряд правомерных вопросов: на какие языки переводить, что именно переводить, куда обращаться, на какие мелочи стоит обратить внимание.
Попробуем ответить на каждый из этих вопросов по отдельности.
+15
Захват изображений с веб-камеры через QCamera
8 min
46KRecovery Mode
Привет, хабр!
В этой статье я расскажу о работе с веб-камерой из Qt5 под Windows (но пример также должен работать под Linux и Mac OS X с установленным плагином gstreamer).

Если интересно, как сделать вот такое приложение и преодолеть возникающие при этом проблемы, то прошу под кат.
В этой статье я расскажу о работе с веб-камерой из Qt5 под Windows (но пример также должен работать под Linux и Mac OS X с установленным плагином gstreamer).

Если интересно, как сделать вот такое приложение и преодолеть возникающие при этом проблемы, то прошу под кат.
+34
О прямоугольных координатах и гексагональных сетках
4 min
29KДумаю, никому не нужно объяснять, насколько широко в играх (и не только) используются гексагональные сетки. Как для заданной шестиугольной ячейки найти координаты ее центра и вершин — достаточно очевидно. Обратное же преобразование (т.е. поиск ячейки, в которую попала данная точка с координатами x и y) уже не столь тривиально. О нём и пойдет речь в данном топике.
+62
Неделя удивительных подарков. Отличные ресурсы с нужной лицензией
3 min
14KПривет, хочу сказать, что мне очень нравится делать подборки для хабры. Много положительных отзывов, много комментариев, а значит моя работа полезная и я ее делаю не зря. Поэтому сегодня я хочу представить вам собрание различных ресурсов, на которых любой дизайнер сможет найти много полезного и интересного. Кому интересно, прошу под кат.
+120
Yet another cool story about bash prompt
10 min
38KЯ программист. По крайней мере так написано в трудовой книжке. Почти всё своё рабочее время я провожу в консоли и текстовом редакторе. Мне очень нравится bash. Почти год я жил в zsh, прислушавшись к советам своих многочисленных коллег и знакомых, но в итоге я вернулся в bash и ни капельки об этом не жалею.

Zsh красив, приятен, чертовски функционален, но, признаюсь честно, я не смог совладать со всеми его многочисленными настройками. Я хочу работать, а не бороться со своим рабочим окружением. Простой пример: пару раз из-за автодополнения zsh я удалял все директории и файлы в текущей директории — zsh просто ставил пробел между автодополненной директорией и введённой мною звёзочкой (я хотел удалить всё в выбранной папке). Помните тот эпичный баг с пробелом и удалении директории /usr? У меня было то же самое. Спасибо гиту, выручил в который раз.
Впрочем, дело не в zsh — будь я чуточку умнее, я бы с ним обязательно справился бы, и всё было бы хорошо, но мы, суровые программисты, будем использовать bash и vim, а гламурные zsh и textmate оставим хипстерам и прочим модникам ;)
Я не напишу ничего оригинального и универсального решения я не приведу, но мне всегда нравилось читать конфиги и описания других людей, а если к ним были приложены интересные картинки, так я вообще перечитывал эти статьи несколько раз. Надеюсь, вам тоже будет интересно.

Zsh красив, приятен, чертовски функционален, но, признаюсь честно, я не смог совладать со всеми его многочисленными настройками. Я хочу работать, а не бороться со своим рабочим окружением. Простой пример: пару раз из-за автодополнения zsh я удалял все директории и файлы в текущей директории — zsh просто ставил пробел между автодополненной директорией и введённой мною звёзочкой (я хотел удалить всё в выбранной папке). Помните тот эпичный баг с пробелом и удалении директории /usr? У меня было то же самое. Спасибо гиту, выручил в который раз.
Впрочем, дело не в zsh — будь я чуточку умнее, я бы с ним обязательно справился бы, и всё было бы хорошо, но мы, суровые программисты, будем использовать bash и vim, а гламурные zsh и textmate оставим хипстерам и прочим модникам ;)
Я не напишу ничего оригинального и универсального решения я не приведу, но мне всегда нравилось читать конфиги и описания других людей, а если к ним были приложены интересные картинки, так я вообще перечитывал эти статьи несколько раз. Надеюсь, вам тоже будет интересно.
+157
Создаём Instagram фильтры с помощью PHP и ImageMagick
5 min
20KTranslation

В этой статье я покажу как создать некоторые эффекты на фотографиях (как на Instagram) с помощью PHP и ImageMagick.
+61
Tilt-Shift фотографии своими руками
5 min
67K
+75
Мой опыт разработки под BlackBerry
4 min
1.5KПредисловие
Дамы и господа! Я хочу вам поведать историю, связанную с разработкой игры для BlackBerry OS. Все выводы в данном посту сделаны исключительно на основании собственного опыта и не являются аксиомой.

+24
Information
- Rating
- Does not participate
- Location
- Ottawa, Ontario, Канада
- Registered
- Activity