Texture Packer

Texture Packer для Linux и macOS – утилита, которая упаковывает набор входных изображений в один большой атлас. Утилита консольная, что удобно для автоматизации.

Из возможностей:

  • Достаточно шустрая. Сравнивал с “обычным платным” (с) пакером.
  • Умеет создавать Power of Two атлас.
  • Можно ограничить максимальный размер атласа.
  • Умеет отрезать “лишние” пиксели (trim) у входных изображений.
  • Может добавить бордюр нужного размера вокруг изображений при размещении в атласе.

Утилита делалась для себя, а теперь доступна на Bitbucket – Texture Packer.

Open Cubic Player

Не предполагал, что Cubic Player все еще жив. Ведь времена DOS’а давно прошли. Ан нет, есть версия и для Windows, и для UNIX-подобных систем. По скришотам на сайте это все тот же Cubic Player.

UNIX-версия Open Cubic Player – все еще имеет баги и нереализованные возможности. На сайте шаги по сборке плеера под разные дистрибутивы.

Форматы, которые поддерживает Open Cubic Player:

* 669 – 669 Composer module;
* AMS – Velvet Studio module;
* BPA – Death Ralley archive;
* CDA – compact disk CD audio track;
* DMF – X Tracker module;
* IT – Impulse Tracker module;
* MDL – Digi Tracker module;
* MID – standard midi file;
* MOD – amiga ProTracker 1.1b module and variants;
* MP3 – MPEG audio format level 1-3;
* MTM – Multi Tracker module;
* MXM – Mxmplay module;
* OKT – Oktalyzer module;
* PLS – playlist, works also with M3U and PLT playlist files;
* PTM – Poly Tracker module;
* S3M – Sream Tracker 3 module;
* SID – PSID sid file;
* UMX – Unreal module file;
* ULT – Ultra Tracker module;
* WAV – Microsoft RIFF wave file;
* WOW – WOW Tracker module;
* XM – Fast Tracker 2 module;

Simple Viewer GL

Simple Viewer GL Небольшой вьювер изображений использующий OpenGL. Пользуюсь этим вьювером в повседневной работе для быстрого просмотра списка изображений, определения параметров области, которую занимает спрайт на текстуре.

Поддерживаемые форматы: PSD, PNG (libpng), JPEG (libjpeg), TIFF (tiff, многостраничный), ICO (поддержка фреймов в формате png), DDS, GIF (giflib, с поддержкой анимации и возможностью просмотра каждого фрейма отдельно), BMP (частичная поддержка), TARGA, PNM, XWD, XPM, SCR (формат экрана ZX-Spectrum), WebP, OpenEXR.

Основные возможности:

  • поддерживаются встроенные в файл цветовые ICC-профили;
  • отображение EXIF или иной информации, внедренной в файл (клавиша <e>);
  • загрузка изображений в отдельном потоке + индикатор процесса загрузки;
  • создание списка файлов и поиск позиции, с которой начался просмотр;
  • поддержка GIF-анимации;
  • отображение координаты и цвета пикселя под курсором (ключ командной строки -p или клавиша P);
  • возможность выделения части изображения рамкой (удобно для определения координат и позиции области);
  • быстрое скролирование изображения с помощью клавиатуры или мышки;
  • произвольное масштабирование изображения с помощью клавиатуры ( / + / 1..0);
  • корректное автоматическое масштабирование изображений, не вмещающихся в окно вьювера;
  • возможность просмотра многостраничных изображений (клавиши PgUp / PgDn)
  • использование OpenGL;
  • разбиение больших изображений по нескольким текстурам;

 
Без минусов не обошлось:

  • нет возможности переназначить “горячие” клавиши (планирую сделать);
  • изображения загруженные с помощью Imlib2 не имеют информации о кол-ве бит на пиксель (постепенно избавляюсь от этой библиотеки в пользу собственной реализации загрузчиков);

Загрузка и сборка
В данный момент исходные коды Simple Viewer GL доступны в Git на Bitbucket.org.
 


Linux и Chromium

Вот так “работает у меня Chromium. Сборка бинарная. Некоторые сайты он отображает, большинство нет.
В динамике это выглядит так – вводим адрес, грузится страница, рендерится, через секунду-пол она перекрывается этой фигней. Если нажать Ctrl + T (открыть новую закладку), то сразу получаем эту страницу.
Раньше Хром “радовал” меня падениями при попытке открыть локально картинку в формате JPEG. В консоль и лог ничего не писал. Просто тихо падал. С другими форматами у него проблем я не замечал.
За приличное время использования Chromium (тогда он еще работал, хотя периодически и доставал сообщениями о недоступности страницы) я не нашел ничего сильно выдающегося относительно других браузеров.

Так что теперь я снова пересел на “тормозной” Firefox + Vimperator + NoScript + Flashblock.

Rubik’s cube Stop-watch

Таймер для учёта времени сборки кубика Рубика и прочих головоломок. Более подробно о возможностях таймера написано ниже скриншота. Могу сказать одно, я пользуюсь своим таймером, так как считаю его наиболее удобным для меня лично. Буду рад, если и вам мой таймер понравится.


Вся графика сделана моим хорошим приятелем и вообще приятным во всех отношениях человеком – Виктором Брановцом. Огромное ему спасибо!

Версия для Android в Google Play Store.
Скачать версию для Linux.
Скачать версию для Windows (старая реализация для Windows).
Скачать версию для OS X.

Возможности:

  • Несколько дисциплин – от 2х2х2 до 7х7х7, пирамидки, скваеры, и.т.д.
  • Учет даты, времени, и скрэмбла для каждой засечки.
  • Отображение текущего времени засечки большими цифрами.
  • Отсчет 15 секунд и автоматический старт таймера, либо “ранний” старт по желанию пользователя (сработает на отпускание пробела).
  • Отображение лучшего и худшего времени.
  • Отображение среднего времени по всем засечкам (без учета лучшего и худшего времени).
  • График засечек с тултипом.
  • Возможность удаления последней засечки, установка флага +2 или DNF для последней засечки.

» Read more

BitlBee – гейт из IRC в Jabber, ICQ, AOL, MSN, etc.

BitlBee – демон, который выполняет роль гейта из IRC в другие популярные IM протоколы. Установил у себя локально, в качестве гейта в Jabber. В качестве IRC-клиента использовал мною любимый консольный WeeChat. Вполне удобно.
Работает сия штука следующим образом: из любимого IRC-клиента подключаемся к BitlBee (в моем случае это localhost на стандартном для IRC порте). Бот по имени root проведет с вами краткий инструктаж, которого будет более чем достаточно для начала работы.
Кол-во аккаунтов не ограничено, общаться можно прямо на канале, предваряя текст сообщения именем контакта, которому отправляете сообщение (это сообщение увидит только он). Или можно открыть отдельное окно для этого контакта, BitlBee запомнит это и будет адресовать соответствующие сообщения в нужное окно. Для каждого контакта (окна) можно указать свою собственную кодировку.
Одним словом, любителям IRC будет привычно и удобно.

Карты уровней игр ZX-Spectrum

Speccy Screenshot Maps – на сайте размещено более 1100 карт из игр для ZX-Spectrum. Владелец ресурса так же написал утилиту, которая позволяет делать снимки экрана игры в эмуляторе, и утилиту, которая склеит эти снимки в одну большую карту.

CPU Statistic History

Как и обещал, выкладываю свой CPU-монитор, который я написал для Ion3. Естественно его можно использовать для любого WM.
Плюсы – он делает все то, что нужно было мне ;)
Минусы – конфигурация размера окна и цветов не вынесена в конфигурационный файл, но настоящего джедая это не должно отпугнуть.

Скачать CPU Statistic History, лицензия GPL v2.

Проект на Sourceforge – CPU Stat Graph.

Захват экрана OpenGL-приложения

Данная заметка устарела, более свежая находится тут – Захват видео и звука из OpenGL приложений под Linux.


В поисках утилиты захвата экрана OpenGL-приложения я наткнулся на captury (media-video/captury). Captury не умеет паковать фреймы “налету”, просто пишет их как есть в контейнер своего формата. Но есть утилита, которая умеет работать с этим форматом.

Захват:

$ captury --output-dir=./ -- your_opengl_application

Для старта захвата видео нужно нажать кнопочку F12 (настройки меняются в /etc/captury.conf, спасибо за подсказку ftrvxmtrx).

Воспроизведение:

$ cpsrecode -i capture.cps -o - | mplayer -demuxer y4m -

Кодирование в theora:

$ cpsrecode -i capture.cps -o out.ogg -c theora

или

$ cpsrecode -i capture.cps -o - | ffmpeg2theora -o out.ogg -

Ivman – время запуска демона

У меня с конфигом по умолчанию ivman запускается почти 6 (шесть) секунд. Можно пожертвовать определением уже подключенных устройств во время старта ivman и сократить время запуска до 200 миллисекунд.
В файле /etc/ivman/IvmConfigActions.xml меняем значение checkOnInit с true на false:

<ivm:Option name="checkOnInit" value="false" />
1 2 3 10