Pull to refresh
4
0
Send message

История игрового рынка, часть 2

Reading time7 min
Views21K


Продолжаем цикл статей (часть 1) про историю игрового рынка и публикуем вторую часть. Сегодня мы поговорим про историю становления рынка игровых консолей и многопользовательских игр.
Читать дальше →
Total votes 78: ↑51 and ↓27+24
Comments54

OpenSSL: новая уязвимость: возможность выполнить MITM атаку (CVE-2014-0224)

Reading time3 min
Views36K

Атака OpenSSL MITM CCS injection


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

Среди недавних багов исправленных в OpenSSL версии 1.0.1h главная это — возможность MITM-атаки (CVE-2014-0224) против протоколов OpenSSL и TLS.
Читать дальше →
Total votes 68: ↑64 and ↓4+60
Comments22

Июньская уязвимость в ядре Linux: подсистема futex. Возможность локального повышения привилегий. CVE-2014-3153

Reading time1 min
Views13K
Лето началось жарко. Совсем недавно мы пофиксили CVE-2014-0196, позволяющую получить локального рута, как на подходе еще одна подобная локальная уязвимость: CVE-2014-3153. И хоть рабочего эксплойта публично пока что нет, затронуты все актуальные версии ядер: от 2.6.32 и до 3.14.5.
Примечание для гентушников: в отличие от CVE-2014-0196 hardened-ядра тоже затронуты.

Привожу перевод исходного информационного письма из списка рассылки:
Pinkie Pie (я так понял, это какой-то сильный исследователь безопасности скрывается под ником персонажа из My Little Pony — примечание переводчика) обнаружил проблему в подсистеме futex, которая позволяет локальному пользователю получить контроль над ring 0 через системный вызов futex. Непривилегированный пользователь может использовать эту уязвимость для краха ядра (приводящему к отказу в обслуживании (DoS)) или повышению привилегий.

Читать дальше →
Total votes 37: ↑36 and ↓1+35
Comments13

SIP через WebRTC на продакшне. Как мы к этому шли и какие проблемы решали

Reading time5 min
Views52K
Доброго времени суток всем!

Я уже писал о своем опыте работы с WebRTC тут, но учитывая то, что в последнее время всё больше статей на эту тему появляется на хабре и то, что я давно хотел написать о том, как мы добились стабильной работы SIP телефонии через WebRTC на продакшне, я решил написать через что мы прошли.

А прошли мы через многое: боль, панику, истерики, кучу матов и пожелания добра мейнтейнерам.
Сейчас же это всё в прошлом. Мы избавились от всех костылей, которые мы делали, и сделали так, чтобы операторы звонили и всё работало стабильно.
В статье, я как можно подробнее описал все проблемы, с которыми мы сталкивались, используя как можно меньше кода и конфигов.

Кому интересно, прошу под кат.
Читать дальше →
Total votes 35: ↑33 and ↓2+31
Comments20

Эксплуатация концептуальных недостатков беспроводных сетей

Reading time3 min
Views90K


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

Читать дальше →
Total votes 84: ↑74 and ↓10+64
Comments85

Создание аудиоплагинов, часть 1

Reading time9 min
Views86K
Все посты серии:
Часть 1. Введение и настройка
Часть 2. Изучение кода
Часть 3. VST и AU
Часть 4. Цифровой дисторшн
Часть 5. Пресеты и GUI
Часть 6. Синтез сигналов
Часть 7. Получение MIDI сообщений
Часть 8. Виртуальная клавиатура
Часть 9. Огибающие
Часть 10. Доработка GUI
Часть 11. Фильтр
Часть 12. Низкочастотный осциллятор
Часть 13. Редизайн
Часть 14. Полифония 1
Часть 15. Полифония 2
Часть 16. Антиалиасинг



Этот пост — первый из серии переводов руководства Мартина Финке о написании собственных аудиоплагинов.
Отличительной особенностью этого материала является отсутствие зависимости от формата плагина и платформы его использования. Внимание сфокусировано на общей структуре аудиоплагина. Затем алгоритмы оборачиваются в слой абстракции для сборки в форматы VST, VST3, AU, RTAS, AAX или в отдельное приложение.
Сам Мартин больше работает на Маке, но руководство содержит и все необходимые шаги для разработки на Windows.
Интересно? Тогда под кат!
Total votes 25: ↑24 and ↓1+23
Comments5

Делаем визуальный web-редактор документов на основе LibreOffice, jodconverter и TinyMCE

Reading time7 min
Views27K
Как же я люблю спецификацию офиса!С написания предыдущей статьи про генерацию Excel документов по шаблону прошло много времени и задача несколько изменилась. Новая задача была поставлена следующим образом: из готового документа excel или word сделать шаблон через веб-интерфейс. В процессе формирования подставлять в шаблон нужные значения, убирать и/или «клонировать» куски шаблона. После формирования, документ должен быть доступен пользователю для визуального редактирования в браузере. Готовый документ должен сохраниться на сервере, быть доступным для скачивания пользователем как в своём расширении (*.doc/*.xls), так и в pdf. При этом верстка скачиваемого файла должна быть идентична шаблону, который был загружен в самом начале (без всяких искажений полей и областей печати).
Что же, задача есть — будем решать!
Читать дальше →
Total votes 42: ↑34 and ↓8+26
Comments11

Никогда не проверяйте e-mail адреса по стандартам RFC

Reading time7 min
Views179K
Множество сайтов требуют от пользователя ввода адреса электронной почты, и мы, как крутые и щепетильные разработчики, всегда стремимся проверять формат введенных адресов строго по стандартам RFC. Благодаря этому наши приложения и сайты проверяют формат e-mail корректно и не имеют проблем с юзабилити, а мы сладко спим, потому что уверены, что все работает как надо.
Ага, как бы не так!
Total votes 141: ↑119 and ↓22+97
Comments103

Алгоритм Order-Independent Transparency c использованием связных списков на Direct3D 11 и OpenGL 4

Reading time16 min
Views32K
imageРеализацию порядко-независимой прозрачности (order-independent transparency, OIT), наверное, можно считать классической задачей программирования компьютерной графики. По сути, алгоритмы OIT решают одну простую прикладную задачу – как нарисовать набор полупрозрачных объектов так, чтобы не беспокоиться о порядке их рисования. Правила смешивания цветов при рендеринге требуют он нас, чтобы полупрозрачные объекты рисовались в порядке от дальнего к ближнему, однако этого сложно добиться в случае протяженных объектов или объектов сложной формы. Реализация одного из самых современных алгоритмов, OIT с использованием связных списков, была представлена AMD для Direct3D 11 еще в 2010 году. Скажу откровенно, производительность алгоритма на широко доступных графических картах тех лет не произвела на меня должного впечатления. Прошло 4 года, я откопал презентацию AMD и решил реализовать алгоритм не только на Direct3D 11, но и на OpenGL 4.3. Тех, кому интересно, что получилось из этой затеи, прошу под кат.
Читать дальше →
Total votes 64: ↑64 and ↓0+64
Comments18

Инверсная кинематика: простой и быстрый алгоритм

Reading time7 min
Views52K
Что такое «Инверсная кинематика»?

Задачей инверсной кинематики является поиск такого набора конфигураций сочленений, который обеспечил бы максимально мягкое, быстрое и точное движение к заданным точкам. Однако, множество существующих ныне методов страдают от таких недостатков как высокая вычислительная сложность и неестественность результирующих поз. В этой статье описан новый (вероятно, на момент написания статьи — 2010 г.) эвристический метод под названием «Метод прямого и обратного следования» ( Forward and Backward Reaching Inverse Kinematics, далее просто FABRIK),
FABRIK избегает использования вращений и матриц в пользу непосредственного получения точки на прямой. Благораря этому, дело обходится всего несколькими итерациями, имеет низкую стоимость вычислений и визуально естественную позу в результате. FABRIK так-же без проблем справляется с наложением ограничений а так-же использованием нескольких цепей и/или конечных точек. Именно об этом методе этот пост.
Читать дальше →
Total votes 56: ↑56 and ↓0+56
Comments16

Sysdig — инструмент для диагностики Linux-систем

Reading time16 min
Views50K
Sysdig — инструмент для диагностики Linux-систем

Для сбора и анализа информации о системе в Linux используется целый набор утилит. Для диагностики каждого из компонентов системы используется отдельный диагностический инструмент.

Читать дальше →
Total votes 65: ↑61 and ↓4+57
Comments14

Linux для профессионалов: видео-монтаж (и немножко композинг)

Reading time9 min
Views85K
Привет коллеги. Думаю, пришло время продолжить начатый некогда цикл «Linux для профессионалов». Сегодня я бы хотел рассказать о монтаже видео на примере ролика, который мы сняли прошлым летом для нашей пражской затеи с электронным GPS аудио-путеводителем.

Собственно ролик (если быть точным, то это демонстрационный мини-фильм).



Весь цикл постобработки и монтажа выполнен с использованием программного обеспечения под управлением ОС Linux.

По-правде говоря, есть один нюанс. Я для подготовки титров сперва использовал AI, запущенный под Wine. Связано это было отчасти с тем, что я, будучи скован врененными рамками, не уделил должное внимание поиску native альтернатив. В действительности, как оказалось, такая альтернатива, вполне лежащая на поверхности, существует. Ниже расскажу подробнее.

Итак, по-порядку.
Читать дальше →
Total votes 84: ↑78 and ↓6+72
Comments60

Ускоряем PHP (с ReactPHP)

Reading time11 min
Views80K
В этом посте я хотел бы поделиться не совсем обычным, для мира PHP, способе построения приложения, если угодно — архитектурой. Данный подход позволяет средствами PHP увеличить количество обрабатываемых запросов в разы. Так же я поделюсь своими наработками в этом направлении. Конечно данный подход не бесплатен, в плане требований к коду, но давайте всё по порядку.
Читать дальше →
Total votes 51: ↑44 and ↓7+37
Comments64

Сайт на с++ (CppCMS). Часть 1

Reading time24 min
Views47K
Здравствуй уважаемый %username%.
Сегодня я хотел бы поделиться с тобой личным опытом в создании Web сайта на CppCMS (библиотека-шаблонизатор на с++). Можно назвать это «помощью начинающему программисту на CppCMS».

Зачем писать сайт на с++


Доводы за и против такого решения могут быть весьма разнообразны и, что бы не спровоцировать войну «языковых школ», я проведу аналогию с автомобилями: «Я купил этот. Нравится. Езжу. Продавать не хочу!».
Из дополнительных аргументов будет то, что данный язык является профильным для моего рабочего места.
Читать дальше →
Total votes 108: ↑89 and ↓19+70
Comments36

Скелетная анимация в первый раз

Reading time5 min
Views28K

Введение


Доброго времени суток. Я пишу статью тут впервые, и цель моя очень проста, я хочу поделиться своим видением скелетной анимации и имею огромное желание получить критику и помошь. Все создание этой системы было путём проб и ошибок, я не нашёл никаких книг о том как это делать, что это вообще из себя представляет и как пользоваться. Но сейчас я зашёл в тупик, выход из которого хотелось бы найти именно тут.
Читать дальше →
Total votes 22: ↑16 and ↓6+10
Comments9

Lock-free структуры данных. Очередной трактат

Reading time16 min
Views53K

Как вы, наверное, догадались, эта статья посвящена lock-free очередям.

Очереди бывают разные. Они могут различаться по числу писателей (producer) и читателей (consumer) – single/multi producer — single/multi consumer, 4 варианта, — они могут быть ограниченными (bounded, на основе предраспределенного буфера) и неограниченными, на основе списка (unbounded), с поддержкой приоритетов или без, lock-free, wait-free или lock-based, со строгим соблюдением FIFO (fair) и не очень (unfair) и т.д. Подробно типы очередей описаны в этой и этой статьях Дмитрия Вьюкова. Чем более специализированы требования к очереди, тем, как правило, более эффективным оказывается её алгоритм. В данной статье я рассмотрю самый общий вариант очередей — multi-producer/multi-consumer unbounded concurrent queue без поддержки приоритетов.
Читать дальше →
Total votes 74: ↑71 and ↓3+68
Comments8

Захват видео в OpenGL приложениях с помощью Intel INDE Media Pack

Reading time5 min
Views6.2K
imageИз прошлых статей вы уже знаете, что такое Intel INDE и его компонент Intel INDE Media Pack, предоставляющий разнообразные возможности работы с видео. В этот раз я хочу поподробнее остановиться на такой возможности Intel INDE Media Pack, как захват видео в приложениях, использующих OpenGL.

Начну я не с примеров и рассказа о том, как это все работает, а с ответов на вопросы, которые чаще всего задают разработчики, когда речь заходит о захвате видео в Media Pack:«Зачем мне вообще делать возможность захвата видео в своем приложении?» и «Зачем использовать Media Pack, если в Android 4.4 появилась возможность захвата видео через ADB?»
Читать дальше →
Total votes 18: ↑17 and ↓1+16
Comments11

SSAO на OpenGL ES 3.0

Reading time17 min
Views30K

Однажды, разглядывая очередную демку с эффектом, возник вопрос: а можно ли сделать SSAO на мобильном девайсе так, чтобы и выглядело хорошо и не тормозило?
В качестве устройства был взят Galaxy Note 3 n9000 (mali T62), цель — фпс не ниже 30, а качество должно быть как на картинке выше.
Реализация под катом
Total votes 65: ↑62 and ↓3+59
Comments16

Преднастройка продуктов Mozilla для корпоративной среды это просто

Reading time4 min
Views19K

Обычно после установки продуктов Mozilla в корпоративной среде требуется дополнительно установить:
  • стандартный для компании набор плагинов
  • сделать типовые настройки


Почему бы не интегрировать необходимые плагины и типовые настройки в дистрибутив?
Цель данной статьи — показать как можно перепаковать дистрибутив Mozilla, добавив необходимые компоненты.

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

Но наша цель — подготовить внутренний дистрибутив для своей организации, так что всё в порядке.

Простая инструкция
Total votes 21: ↑19 and ↓2+17
Comments25

Signed Distance Field или как сделать из растра вектор

Reading time12 min
Views60K
Речь сегодня пойдёт о генерации изображений с картой расстояний (Signed Distance Field). Данный вид изображений примечателен тем, что фактически позволяет получить «векторную» графику на видеоускорителе, причём даром. Одной из первых данный метод растеризации предложила компания Valve в игре Team Fortress 2 для масштабируемых декалей в 2007 году, но до сих пор он не пользуется особой популярностью, хотя позволяет рендерить прекрасного качества шрифты, используя текстуру всего 256х256 точек. Данный метод прекрасно подходит для современных экранов высокой чёткости и позволяет серьёзно сэкономить на текстурах в играх, он не требователен к железу и прекрасно работает на смартфонах.



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

Как же создавать такие изображения? Очень просто, ImageMagick позволяет сделать это одной командой:

convert in.png -filter Jinc -resize 400% -threshold 30% \( +clone -negate -morphology Distance Euclidean -level 50%,-50% \) -morphology Distance Euclidean -compose Plus -composite -level 45%,55% -resize 25% out.png

На этом можно было бы поставить точку, но так полноценного топика не получится. Что ж, под катом — описание быстрого алгоритма расчёта SDF, пример на C++ и немного шейдеров для OpenGL.
Читать дальше →
Total votes 115: ↑113 and ↓2+111
Comments61

Information

Rating
Does not participate
Location
Россия
Registered
Activity