Данный текст создан на основе моего выступления на GRWebDev. Это история проекта, который был отменен и похоронен в GitHub, а также рассказ об уроках, извлеченных в ходе работы над ним.
User
Бесплатная книга «Game Programming Patterns» от программиста Electronic Arts Боба Найстрома
1 min
85KБоб Найстром, программист, проработавший восемь лет в компании Electronic Arts, закончил работу над книгой «Game Programming Patterns». Она доступна бесплатно на сайте gameprogrammingpatterns.com. Писать книгу Боб Найстром начал четыре года назад. Большинство книг, посвящённых программированию игр, говорит он во введении, либо подробно раскрывают какой-то из аспектов создания игры — физический движок, графику, искусственный интеллект, либо описывают процесс создания игры в определённом жанре от начала до конца. Ему очень не хватало книги, рассказывающей о решении типовых задач, возникающих перед программистом, книги достаточно универсальной, не привязанной к жанрам или конкретным подсистемам игр. И поэтому он решил написать такую книгу сам.
+93
Потоки — это Goto параллельного программирования
6 min
39KСразу раскрою мысль, вынесенную в заголовок. Использование потоков (также именуемых нити, треды, англ. threads) и средств прямой манипуляции ими (создание, уничтожение, синхронизация) для написания параллельных приложений оказывает столь же пагубное влияние на сложность алгоритмов, качество кода и скорость его отладки, какое вносило использование оператора Goto в последовательных программах.
Как когда-то программисты отказались от неструктурированных переходов, нам необходимо отказаться от прямого использования потоков сейчас и в будущем. И так же, как каждый из нас использует структурные блоки вместо Goto, вместо потоков должны использоваться структуры, построенные поверх них. Благо, все инструменты для этого появились во вполне традиционных языках.
Автор фото: Rainer Zenz
Как когда-то программисты отказались от неструктурированных переходов, нам необходимо отказаться от прямого использования потоков сейчас и в будущем. И так же, как каждый из нас использует структурные блоки вместо Goto, вместо потоков должны использоваться структуры, построенные поверх них. Благо, все инструменты для этого появились во вполне традиционных языках.

+50
12 малоизвестных возможностей CSS
8 min
138KTranslation

В процессе работы с CSS я постоянно нахожу что-нибудь интересненькое, так что решил написать пост и поделиться своими знаниями с вами. Правда, учитывайте, что не всё, о чем будет рассказано, имеет непосредственное практическое значение, но, на всякий случай, в хозяйстве пригодится.
+83
Unreal Engine 4 теперь доступен для всех
1 min
101KКомпания Epic Games анонсировала что с сегодняшнего дня любой желающий может получить доступ к Unreal Engine 4 всего за 19$ в месяц + 5% от стоимости каждой проданной копии продукта, сделанного на основе UE4.
+28
Гибридные диски SSHD — что за птица?
2 min
432K
В нашей работе частенько приходится иметь дело с разнообразными накопителями информации, включая винчестеры и твердотельные накопители информации. При этом иногда попадаются и достаточно необычные устройства, которые не распространены повсеместно. К примеру, SSHD — гибридные винчестеры. Вероятно, на Хабре есть люди, которые хорошо знакомы с этим типом накопителей информации, но есть и те, кто даже не слышал о подобных «гибридах».
Поэтому мы решили опубликовать статью о подобных винчестерах, описав их устройство, а также преимущества, по сравнению с привычными жесткими дисками и SSD.
+11
Введение в оптимизацию. Имитация отжига
10 min
191KВ этой статье я постараюсь максимально доходчиво рассказать о таком простом, но эффективном методе оптимизации, как имитация отжига (simulated annealing). А чтобы не быть причисленным к далёким от практики любителям теоретизировать, я покажу как применить этот метод для решения задачи коммивояжёра.
Для понимания статьи Вам понадобятся минимальные навыки программирования и владение математикой на уровне 9 класса средней школы. Статья рассчитана на людей не знакомых с методами оптимизации или только делающих первые шаги в этом направлении.

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

+128
Python: вещи, которых вы могли не знать
8 min
314KPython — красивый и местами загадочный язык. И даже зная его весьма неплохо, рано или поздно находишь для себя нечто такое, что раньше не использовал. Этот пост отражает некоторые детали языка, на которые многие не обращают внимание. Сразу скажу: многие примеры являются непрактичными, но, оттого, не менее интересными. Так же, многие примеры демонстрируют unpythonic стиль, но я и не претендую на новые стандарты — я просто хочу показать, что можно делать вот так.
+101
NASA выложила в открытый доступ 17000 фотографий программы «Аполлон»
1 min
119K
Судя по всему, у сторонников конспирологических теорий о
+91
Android NDK Game Development Cookbook
3 min
46KНаконец-то вышел наш сборник рецептов про С++ разработку под Android.


+42
RCE в Android-приложениях через сторонние сервисы
3 min
7.1KСовсем недавно компания MWR опубликовала интересную запись "WebView addJavascriptInterface Remote Code Execution" в своем блоге. Запись касается безопасности мобильных приложений. Не хочется полностью пересказывать исследование наших английских коллег — советуем обратиться к первоисточнику. Но если коротко, то при использовании сторонней библиотеки в своем мобильном приложении под Android можно легко поймать RCE (remote code execution) атаку. Произвольное выполнение кода в Android-приложении возможно благодаря рефлексии Java-объекта, который вставляется в WebView.
+14
Lock-free структуры данных. Основы: Атомарность и атомарные примитивы
15 min
112K
Построение lock-free структур данных зиждется на двух китах – атомарных операциях и способах упорядочения доступа к памяти. В этой статье речь пойдет об атомарности и атомарных примитивах.
Анонс. Спасибо за теплый прием Начал! Вижу, что тема lock-free интересна хабрасообществу, это меня радует. Я планировал построить цикл по академическому принципу, плавно переходя от основ к алгоритмам, попутно иллюстрируя текст кодом из libcds. Но часть читателей требует
А пока я судорожно готовлю начало Извне, — первая часть Основ. Статья во многом не о C++ (хотя и о нем тоже) и даже не о lock-free (хотя без atomic lock-free алгоритмы неработоспособны), а о реализации атомарных примитивов в современных процессорах и о базовых проблемах, возникающих при использовании таких примитивов.
Атомарность — это первый
+113
Lock-free структуры данных. Извне: введение в libcds
14 min
31K
В этой статье я даю краткий обзор того, как применять библиотеку lock-free структур данных libcds. В реализацию я углубляться здесь не буду, — это просто взгляд извне, взгляд со стороны пользователя библиотеки.
Библиотека libcds имеет свою точку зрения на многие известные структуры данных. Отчасти это объясняется целевой областью – lock-free структуры данных довольно минималистичны по набору предоставляемых методов, — отчасти желанием выйти за ограничения и решения стандартной библиотеки STL. Что из этого получилось – решать пользователям libcds.
Кому интересно – добро пожаловать под кат
+49
Lock-free структуры данных. Внутри. Схемы управления памятью
28 min
53K
Как я упоминал в своих предыдущих заметках, основными трудностями при реализации lock-free структур данных являются ABA-проблема и удаление памяти. Я разделяю эти две проблемы, хоть они и связаны: дело в том, что существуют алгоритмы, решающие только одну из них.
В этой статье я дам обзор известных мне методов безопасного удаления памяти (safe memory reclamation) для lock-free контейнеров. Демонстрировать применение того или иного метода я буду на классической lock-free очереди Майкла-Скотта [MS98].
+69
Первые шаги с OpenCL или сказ о том как одинаковый код на GPU и CPU запускать
15 min
59KИтак, прошел почти год с момента моего первого поста о программировании видеокарт и страшилок о том, как это все сложно. Теперь настала пора показать, что все не так плохо и как пользоваться этой странной штукой по имени OpenCL, да еще и использовать его главное преимущество, то есть возможность запускать один и тот же код на разных девайсах. А еще я покажу как можно получить на порядок большую производительность обычного процессора практически бесплатно.
+51
CFD 3D: простой симулятор воды
12 min
65K![]() |
![]() |
Введение
CFD (Computational fluid dynamics) — вычислительная гидродинамика.
Используется для моделирования разных процессов в жидкостях, а также разных типов жидкостей (например мёд, нефть — это все жидкости).
В данном посте рассматривается 2D симулятор обычной воды с открытой поверхностью и препятствиями (для 3D версии все аналогично + доступны исходники).
Поверхность воды представляет собой границу, отделяющую воду от воздуха.Это позволяет моделировать волны, падение капель и т.д.
+87
Привычный вид для Visual Studio 2012
1 min
78KНе нравятся новые цветовые темы
Ставим Visual Studio 2012 Color Theme Editor, видим в меню VS новый пункт «THEME», наслаждаемся.
Не нравятся новые иконки в Solution Explorer
Ставим Visual Studio Icon Patcher (VS 2010 должна быть тоже установлена).
Не нравится CAPS в меню
Об этом уже писали.
Спасибо Скотту Хансельману за то, что пишет полезные вещи в свой блог.
+25
Джефф Дин из компании Google — это Чак Норрис нашего времени
4 min
226K
Джефф Дин считается кем-то вроде Чака Норриса. Отличие только в том, что он вовсе не герой боевиков, а инженер-программист компании Google.
Шутки о нём впервые появились на 1 апреля шесть лет назад. Один из коллег Дина по имени Кентон Варда открыл страничку, куда каждый мог добавлять факты о Джеффе Дине. Идею с энтузиазмом подхватили другие разработчики — и вскоре наполнили страничку множеством таких «фактов».
+333
Уязвимость позволяющая слышать собеседника с выключенным микрофоном
1 min
13K
Уязвимость позволяет активировать выключенный микрофон собеседника без его ведома. При этом пиктограмма микрофона останется перечеркнутой.
Ошибка находится в функции автоматического восстановления связи при обрыве в режиме группового звонка. Проверено на Windows-версиях 5.5.0.124, 5.6, BETA 5.7.0.123.
Шаги чтобы воспроизвести ошибку:
- Звоним или принимаем звонок.
- Собеседник мьютит микрофон.
- Превращаем звонок в групповой, введя в чат /add echo123
- Отключаем интернет и ждем красного сообщения «Hold on while we try to get the call back».
- Подключаем интернет и ждем когда звонок восстановится.
- Слышим собеседника, несмотря на то, что у него пиктограмма микрофона выглядит перечеркнутой
При звонках тет-а-тет ошибку воспроизвести не удалось.
Тикет jira.skype.com/browse/SCW-3328
UPD: Разработчики подтвердили ошибку.
Raul Liive
We have confirmed and we are working on fixing it as soon as possible
Issue id: calling-244
+114
Интеграция iCloud на примере игры Cut the Rope
4 min
20KПривет хабра-житель. Сегодня я хотел бы поведать тебе о своем опыте интеграции iCloud в игру Cut the Rope.
На этот пост меня вдохновил отзыв одного пользователя, пришедший на почтовый адрес технической поддержки:
«I do not need any help, I just wanted to ask you something… How did you
run iCloud Cut the Rope even if it is not a universal application? I
alternate with iPhone and iPad without problems, and it is extraordinary.
Unfortunately, no other developer does this, it is only with universal
applications, so I wonder… you are a magician you or others are not
willing to do anything? You are number one for me, thank you for your
beautiful game and support it for long. Hello».
Не знаю насколько экстраординарно то, что для iPad и iPhone версии приложения используется один игровой прогресс, но сегодня я расскажу как этого добиться. Тем более, что это очень просто. Также я расскажу о некоторых проблемах и их решениях, с которыми мы столкнулись при интеграции.
На этот пост меня вдохновил отзыв одного пользователя, пришедший на почтовый адрес технической поддержки:
«I do not need any help, I just wanted to ask you something… How did you
run iCloud Cut the Rope even if it is not a universal application? I
alternate with iPhone and iPad without problems, and it is extraordinary.
Unfortunately, no other developer does this, it is only with universal
applications, so I wonder… you are a magician you or others are not
willing to do anything? You are number one for me, thank you for your
beautiful game and support it for long. Hello».
Не знаю насколько экстраординарно то, что для iPad и iPhone версии приложения используется один игровой прогресс, но сегодня я расскажу как этого добиться. Тем более, что это очень просто. Также я расскажу о некоторых проблемах и их решениях, с которыми мы столкнулись при интеграции.
+26
Information
- Rating
- Does not participate
- Registered
- Activity