Search
Write a publication
Pull to refresh
0
0
Send message

Уроки, извлеченные из похороненного проекта

Reading time5 min
Views16K
Данный текст создан на основе моего выступления на GRWebDev. Это история проекта, который был отменен и похоронен в GitHub, а также рассказ об уроках, извлеченных в ходе работы над ним.

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

Бесплатная книга «Game Programming Patterns» от программиста Electronic Arts Боба Найстрома

Reading time1 min
Views85K
Боб Найстром, программист, проработавший восемь лет в компании Electronic Arts, закончил работу над книгой «Game Programming Patterns». Она доступна бесплатно на сайте gameprogrammingpatterns.com. Писать книгу Боб Найстром начал четыре года назад. Большинство книг, посвящённых программированию игр, говорит он во введении, либо подробно раскрывают какой-то из аспектов создания игры — физический движок, графику, искусственный интеллект, либо описывают процесс создания игры в определённом жанре от начала до конца. Ему очень не хватало книги, рассказывающей о решении типовых задач, возникающих перед программистом, книги достаточно универсальной, не привязанной к жанрам или конкретным подсистемам игр. И поэтому он решил написать такую книгу сам.
Читать дальше →

Потоки — это Goto параллельного программирования

Reading time6 min
Views39K
Сразу раскрою мысль, вынесенную в заголовок. Использование потоков (также именуемых нити, треды, англ. threads) и средств прямой манипуляции ими (создание, уничтожение, синхронизация) для написания параллельных приложений оказывает столь же пагубное влияние на сложность алгоритмов, качество кода и скорость его отладки, какое вносило использование оператора Goto в последовательных программах.
Как когда-то программисты отказались от неструктурированных переходов, нам необходимо отказаться от прямого использования потоков сейчас и в будущем. И так же, как каждый из нас использует структурные блоки вместо Goto, вместо потоков должны использоваться структуры, построенные поверх них. Благо, все инструменты для этого появились во вполне традиционных языках.
Автор фото: Rainer Zenz
Читать дальше →

12 малоизвестных возможностей CSS

Reading time8 min
Views138K
CSS — не очень сложный язык. Но даже если вы пишете таблицы стилей в течении многих лет, наверняка бывают моменты, когда вы узнаете еще что-нибудь новенькое: свойства или значения, которые вам не доводилось использовать, детали спецификации, о которых вы не имели понятия.

В процессе работы с CSS я постоянно нахожу что-нибудь интересненькое, так что решил написать пост и поделиться своими знаниями с вами. Правда, учитывайте, что не всё, о чем будет рассказано, имеет непосредственное практическое значение, но, на всякий случай, в хозяйстве пригодится.
Читать дальше →

Unreal Engine 4 теперь доступен для всех

Reading time1 min
Views101K
Компания Epic Games анонсировала что с сегодняшнего дня любой желающий может получить доступ к Unreal Engine 4 всего за 19$ в месяц + 5% от стоимости каждой проданной копии продукта, сделанного на основе UE4.
Читать дальше →

Гибридные диски SSHD — что за птица?

Reading time2 min
Views432K


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

Поэтому мы решили опубликовать статью о подобных винчестерах, описав их устройство, а также преимущества, по сравнению с привычными жесткими дисками и SSD.

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

Введение в оптимизацию. Имитация отжига

Reading time10 min
Views191K
В этой статье я постараюсь максимально доходчиво рассказать о таком простом, но эффективном методе оптимизации, как имитация отжига (simulated annealing). А чтобы не быть причисленным к далёким от практики любителям теоретизировать, я покажу как применить этот метод для решения задачи коммивояжёра.

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

image


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

Python: вещи, которых вы могли не знать

Reading time8 min
Views314K
Python — красивый и местами загадочный язык. И даже зная его весьма неплохо, рано или поздно находишь для себя нечто такое, что раньше не использовал. Этот пост отражает некоторые детали языка, на которые многие не обращают внимание. Сразу скажу: многие примеры являются непрактичными, но, оттого, не менее интересными. Так же, многие примеры демонстрируют unpythonic стиль, но я и не претендую на новые стандарты — я просто хочу показать, что можно делать вот так.
Читать далее

NASA выложила в открытый доступ 17000 фотографий программы «Аполлон»

Reading time1 min
Views119K


Судя по всему, у сторонников конспирологических теорий о рептилоидах фальшивых полетах человека на Луну в ближайшие годы появится очень много работы :) Дело в том, что NASA выложило в открытый доступ целых 17000 фотографий, сделанных в рамках программы «Аполлон» — всего цикла. В числе выложенных фото есть и очень известные снимки, и те, которые многие из нас увидят впервые.

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

RCE в Android-приложениях через сторонние сервисы

Reading time3 min
Views7.1K
Совсем недавно компания MWR опубликовала интересную запись "WebView addJavascriptInterface Remote Code Execution" в своем блоге. Запись касается безопасности мобильных приложений. Не хочется полностью пересказывать исследование наших английских коллег — советуем обратиться к первоисточнику. Но если коротко, то при использовании сторонней библиотеки в своем мобильном приложении под Android можно легко поймать RCE (remote code execution) атаку. Произвольное выполнение кода в Android-приложении возможно благодаря рефлексии Java-объекта, который вставляется в WebView.

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

Lock-free структуры данных. Основы: Атомарность и атомарные примитивы

Reading time15 min
Views112K

Построение lock-free структур данных зиждется на двух китах – атомарных операциях и способах упорядочения доступа к памяти. В этой статье речь пойдет об атомарности и атомарных примитивах.

Анонс. Спасибо за теплый прием Начал! Вижу, что тема lock-free интересна хабрасообществу, это меня радует. Я планировал построить цикл по академическому принципу, плавно переходя от основ к алгоритмам, попутно иллюстрируя текст кодом из libcds. Но часть читателей требует зрелищ не мешкая показать, как пользоваться библиотекой, особо не рассусоливая. Я согласен, в этом есть свой резон. В конечном счете, и мне не так интересно, что там внутри boost, — опишите, как его применять! Поэтому свой эпический цикл я разделю на три части: Основы, Внутри и Извне. Каждая статья эпопеи будет относится к одной из частей. В Основах будет рассказываться о низкоуровневых вещах, вплоть до строения современных процессоров; это часть для почемучек вроде меня. Внутри будет освещать интересные алгоритмы и подходы в мире lock-free, — это скорее теория о том, как реализовать lock-free структуру данных, libcds будет неисчерпаемым источником C++ кода. В Извне будут статьи о практике применения libcds, — программные решения, советы и FAQ. Извне будет питаться вашими вопросами/замечаниями/предложениями, дорогие хабражители.

А пока я судорожно готовлю начало Извне, — первая часть Основ. Статья во многом не о C++ (хотя и о нем тоже) и даже не о lock-free (хотя без atomic lock-free алгоритмы неработоспособны), а о реализации атомарных примитивов в современных процессорах и о базовых проблемах, возникающих при использовании таких примитивов.
Атомарность — это первый круг ада низкий уровень из двух.
Читать дальше →

Lock-free структуры данных. Извне: введение в libcds

Reading time14 min
Views31K

В этой статье я даю краткий обзор того, как применять библиотеку lock-free структур данных libcds. В реализацию я углубляться здесь не буду, — это просто взгляд извне, взгляд со стороны пользователя библиотеки.

Библиотека libcds имеет свою точку зрения на многие известные структуры данных. Отчасти это объясняется целевой областью – lock-free структуры данных довольно минималистичны по набору предоставляемых методов, — отчасти желанием выйти за ограничения и решения стандартной библиотеки STL. Что из этого получилось – решать пользователям libcds.

Кому интересно – добро пожаловать под кат
Читать дальше →

Lock-free структуры данных. Внутри. Схемы управления памятью

Reading time28 min
Views53K

Как я упоминал в своих предыдущих заметках, основными трудностями при реализации lock-free структур данных являются ABA-проблема и удаление памяти. Я разделяю эти две проблемы, хоть они и связаны: дело в том, что существуют алгоритмы, решающие только одну из них.
В этой статье я дам обзор известных мне методов безопасного удаления памяти (safe memory reclamation) для lock-free контейнеров. Демонстрировать применение того или иного метода я буду на классической lock-free очереди Майкла-Скотта [MS98].

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

Первые шаги с OpenCL или сказ о том как одинаковый код на GPU и CPU запускать

Reading time15 min
Views59K
Итак, прошел почти год с момента моего первого поста о программировании видеокарт и страшилок о том, как это все сложно. Теперь настала пора показать, что все не так плохо и как пользоваться этой странной штукой по имени OpenCL, да еще и использовать его главное преимущество, то есть возможность запускать один и тот же код на разных девайсах. А еще я покажу как можно получить на порядок большую производительность обычного процессора практически бесплатно.
За деталями под кат...

CFD 3D: простой симулятор воды

Reading time12 min
Views65K




Введение


CFD (Computational fluid dynamics) — вычислительная гидродинамика.
Используется для моделирования разных процессов в жидкостях, а также разных типов жидкостей (например мёд, нефть — это все жидкости).

В данном посте рассматривается 2D симулятор обычной воды с открытой поверхностью и препятствиями (для 3D версии все аналогично + доступны исходники).
Поверхность воды представляет собой границу, отделяющую воду от воздуха.Это позволяет моделировать волны, падение капель и т.д.
Читать дальше →

Привычный вид для Visual Studio 2012

Reading time1 min
Views78K

Не нравятся новые цветовые темы


Ставим Visual Studio 2012 Color Theme Editor, видим в меню VS новый пункт «THEME», наслаждаемся.

Не нравятся новые иконки в Solution Explorer


Ставим Visual Studio Icon Patcher (VS 2010 должна быть тоже установлена).

Не нравится CAPS в меню


Об этом уже писали.

Спасибо Скотту Хансельману за то, что пишет полезные вещи в свой блог.

Джефф Дин из компании Google — это Чак Норрис нашего времени

Reading time4 min
Views226K
«Джефф Дин компилирует и запускает свой код перед коммитом, но только чтобы проверить на баги компилятор и CPU», — вот один из множества шуточных фактов о Джеффе Дине.

Джефф Дин считается кем-то вроде Чака Норриса. Отличие только в том, что он вовсе не герой боевиков, а инженер-программист компании Google.

Шутки о нём впервые появились на 1 апреля шесть лет назад. Один из коллег Дина по имени Кентон Варда открыл страничку, куда каждый мог добавлять факты о Джеффе Дине. Идею с энтузиазмом подхватили другие разработчики — и вскоре наполнили страничку множеством таких «фактов».
Читать дальше →

Уязвимость позволяющая слышать собеседника с выключенным микрофоном

Reading time1 min
Views13K
image

Уязвимость позволяет активировать выключенный микрофон собеседника без его ведома. При этом пиктограмма микрофона останется перечеркнутой.

Ошибка находится в функции автоматического восстановления связи при обрыве в режиме группового звонка. Проверено на Windows-версиях 5.5.0.124, 5.6, BETA 5.7.0.123.

Шаги чтобы воспроизвести ошибку:
  1. Звоним или принимаем звонок.
  2. Собеседник мьютит микрофон.
  3. Превращаем звонок в групповой, введя в чат /add echo123
  4. Отключаем интернет и ждем красного сообщения «Hold on while we try to get the call back».
  5. Подключаем интернет и ждем когда звонок восстановится.
  6. Слышим собеседника, несмотря на то, что у него пиктограмма микрофона выглядит перечеркнутой


При звонках тет-а-тет ошибку воспроизвести не удалось.

Тикет 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

Интеграция iCloud на примере игры Cut the Rope

Reading time4 min
Views20K
Привет хабра-житель. Сегодня я хотел бы поведать тебе о своем опыте интеграции 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 версии приложения используется один игровой прогресс, но сегодня я расскажу как этого добиться. Тем более, что это очень просто. Также я расскажу о некоторых проблемах и их решениях, с которыми мы столкнулись при интеграции.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity