Увидел у себя в ЖЖ френдленте следующую сравнительную таблицу для лицензий — выкладываю на всеобщее обозрение. Источник: http://joreg.livejournal.com/25796.html
Newton Game Dynamics открыт под лицензией zlib
1 min
1.7K
Популярный среди разработчиков игр кросс платформенный физический движок Newton Game Dynamics теперь открыт и выпущен под свободной лицензией zlib. Произошло это событие 15 февраля.
Разговоров на тему открытия исходников на форуме движка было достаточно, и многие разработчики игр ждали этого и такой момент, наконец, наступил.
Snappy (zippy), библиотека для сжатия данных от Bigtable
1 min
2.5KGoogle выпустил библиотеку Snappy под лицензией Apache 2.0. Эта библиотека для компрессии/декомпрессии нацелена не на максимальную степень сжатия или совместимость с другими библиотеками, а на максимальную скорость работы. Например, по сравнению с самым быстрым режимом zlib, Snappy примерно на порядок быстрее для большинства входящих данных, но архивы получаются на 20–100% больше по размеру. На одном ядре Core i7 в 64-битном режиме Snappy скорость компрессии больше как минимум на 250 МБ/с, а декомпрессии — минимум на 500 МБ/с.
Snappy широко используется в Google, в разных системах от BigTable и MapReduce до внутренних RPC-систем (в некоторых презентациях она упоминалась под названием Zippy).
Дополнительную информацию см. в файле readme. Бенчмарки по сравнению с другими библиотеками (zlib, LZO, LZF, FastLZ и QuickLZ) поставляются в комплекте с исходниками.
Snappy широко используется в Google, в разных системах от BigTable и MapReduce до внутренних RPC-систем (в некоторых презентациях она упоминалась под названием Zippy).
Дополнительную информацию см. в файле readme. Бенчмарки по сравнению с другими библиотеками (zlib, LZO, LZF, FastLZ и QuickLZ) поставляются в комплекте с исходниками.
libral – слой абстракции доступа к библиотекам сжатия
2 min
1.1K
На данный момент поддерживаются библиотеки:
- libc — без сжатия
- zlib — www.zlib.net
- lzo — www.oberhumer.com/opensource/lzo
- snappy — code.google.com/p/snappy
- bzip2 — www.bzip.org
Протокол коммуникации Siri взломан
3 min
3.5KРазработчикам мобильных приложений из компании Applidium удалось разобраться в протоколе коммуникации, который использует программа Siri, так что теперь этот движок распознавания речи теоретически можно запускать на любом устройстве, в том числе Android, если вы знаете, где добыть идентификатор iPhone 4S, и компания Apple не внесёт его в «чёрный список».
Ключевым элементом Siri является то, как программа общается с сервером (Siri работает только при наличии доступа в интернет). Трафик идёт по протоколу TCP, порт 443, на сервер 17.174.4.4. Если вы попробуете связаться с сервером https://17.174.4.4/ с десктопа, то увидите, что он предъявляет сертификат на имя guzzoni.apple.com (Дидье Гуззони из компании SRI — один из создателей этой технологии).
Ключевым элементом Siri является то, как программа общается с сервером (Siri работает только при наличии доступа в интернет). Трафик идёт по протоколу TCP, порт 443, на сервер 17.174.4.4. Если вы попробуете связаться с сервером https://17.174.4.4/ с десктопа, то увидите, что он предъявляет сертификат на имя guzzoni.apple.com (Дидье Гуззони из компании SRI — один из создателей этой технологии).
WebService c поддержкой gzip на C
5 min
4.4KВ посте речь пойдет о моем опыте встраивания XML-RPC интерфейса в утилиту, написанную на C. Интерфейс должен предоставлять доступ к статитстике и результатам работы утилиты. Одно из требований к интерфейсу — поддержка ответов в формате gzip, в целях экономии трафика. Мне очень хотелось обойтись малой кровью и вот что из этого получилось.
Пишем архиватор на основе ZLib в .NET
4 min
16K
Зачем пишем
- потому что удобно иметь свой настраиваемый инструмент, в котором можно вмешаться в архивацию на любом этапе
- потому что это интересно
- потому что многие архиваторы имеющие api, платные, а насчет других см. первый аргумент.
Графический формат JNG — чем полезен, как устроен, чем сконвертить, посмотреть и загрузить
9 min
16K
Tutorial

По сути JNG представляет из себя подвид формата MNG (однако со своим маркером в заголовке, позволяющим отличать оба этих формата). Цветовые данные сохраняются в JPEG формате, а вот альфа может хранится в одном из двух вариантов – либо тоже сжатая при помощи JPEG, как картинка в оттенках серого, либо используя такое же как в PNG — сжатие без потерь.
Где может пригодится JNG? Для меня он больше всего подошёл для хранения текстурных атласов в мобильных играх. Небольшой пример – исходный набор графики от игры весил 57 мегабайт, после замены всех png на jng – набор графики стал весить 15 мегабайт. Неплохой выигрыш для мобильной игры. Поиск других областей, где можно применить jng оставлю на усмотрение читателя, я же опишу чем смотреть, чем создавать а также как грузить (с примерами кода на C/C++) картинки в формате JNG, а также немного теории об его устройстве.
Новый алгоритм Zopfli улучшает сжатие zlib на 3-8%
2 min
21K
Новый алгоритм является реализацией стандартных алгоритмов Deflate, поэтому он совместим с zlib и gzip, а разархивирование данных уже поддерживается всеми браузерами. Достаточно подключить Zopfli на сервере. Например, его можно использовать с веб-сервером Nginx без изменений в модуле gzip, просто указав новый «прекомпрессор».
Правда, сжатие с помощью Zopfli требует примерно в 100 раз больше ресурсов, чем gzip, зато декомпрессия в браузере осуществляется с той же скоростью.
Опасный getimagesize() или Zip Bomb для PHP
6 min
43K
В Питер снова пришла осень, и рабочее настроение, которое подвергалось постоянной атаке солнечной радиации вот уже целую неделю, решило, что с него хватит, и улетело в ещё не задраенную форточку.
«Отлично, — подумал я, — самое время поковырять какой-нибудь движок, пока оно не вернулось!»
Сказано — сделано. Под катом предлагаю небольшой обзор уязвимости в распространённом движке фото-галереи на PHP и о том, как можно положить любой сайт, использующий
getimagesize()
, с помощью бородатой zip-бомбы (или пета-бомбы). Разбор форматов: упакованные хешированные ресурсы
9 min
18K
В прошлых двух статьях я рассказал об особенностях форматов данных звуковой подсистемы современных игр. Чтобы не утомлять читателей, перейду к несколько другой теме. Какой бы движок не использовала игра, ей нужно где-то хранить ресурсы и извлекать их оттуда в нужный момент. Иногда ресурсы в архиве имеют как идентификатор, так и читабельное имя файла. Но существует довольно много движков, где имён у файлов нет, а есть только хеш. Как же в таком случае можно что-то разобрать в ресурсах?
Рассмотрим это на примере довольно редкого движка bitsquid. Он простой и компактный, но, тем не менее, имеет все необходимые для современных игр возможности. В прошлом году bitsquid вместе с его разработчиком был куплен компанией Autodesk, и теперь они собираются скрестить его с Maya и сделать свой собственный игровой движок, который, как они обещают, будет чем-то невероятным.
Стойкое шифрование данных в PNG
2 min
12KДоброго утра Хабру. Читал вчера статью о хэш-стеганографии через социальные сети, и пришла мне в голову мысль сделать что-то более оптимальное в плане объёма выходных данных. Получилось что-то более-менее работоспособное и даже оптимизированное (в отличие от proof-of-concept romabibi), поэтому, как и обещал, пишу статью.
Что ж, поздороваюсь с вами ещё раз:
, и добро пожаловать под кат.
Что ж, поздороваюсь с вами ещё раз:

Файл 420 байт разжимается в картинку PNG на 40 гигапикселей (141 ГБ ОЗУ)
2 min
13KВ старые времена были популярны zip-бомбы и рекурсивные архивы, которые распаковываются сами в себя. Zip-бомбу иногда можно использовать для DoS-атаки. Например, пресловутый файл 42.zip имеет размер 42 килобайта. Если начать его распаковку, то процесс будет идти до тех пор, пока набор данных не достигнет верхнего предела распаковки в 4,3 гигабайта. При этом процесс займет более 4,5 петабайт в оперативной памяти (4 503 599 626 321 920 байт).
Программист и хакер Дэвид Фифилд (David Fifield) задумался, где ещё можно применить «архивные бомбы». Сразу на ум приходит графический формат PNG, в котором используется алгоритм сжатия DEFLATE в библиотеке zlib.
Программист и хакер Дэвид Фифилд (David Fifield) задумался, где ещё можно применить «архивные бомбы». Сразу на ум приходит графический формат PNG, в котором используется алгоритм сжатия DEFLATE в библиотеке zlib.
Адаптация подхода с применением сжатия zlib для отсеивания некачественных текстов разной длины
4 min
1.3K
Недавно Сбер в статье Всё, что нам нужно — это генерация предложил интересный подход для отсеивания некачественных текстов (технического мусора и шаблонного спама). Но разве коэффициент сжатия zlib на качественных текстах не имеет нелинейной зависимости от длины сжимаемого текста? Давайте проверим.