Ugolnik's Family blog

Различные заметки обо всем.

Для тех, кто жаждет разработки под PSP без ощутимых вложений зеленых бумажек есть Minimalist PSPSDK. А для особых “ценителей” есть и эмулятор самого устройства – jpcsp.
Что SDK, что эмулятор работают и под Linux в том числе.

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

Не предполагал, что 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;

Сегодня ночью сделал поддержку формата PSD (растровый формат Adobe Photoshop) в Simple Viewer GL. На данный момент реализовал не все возможности, но тем не менее я доволен ;)
Реализовывал формат PSD по спецификации Adobe Photoshop File Format Summary. Поддержку слоев и цветовых режимов (Bitmap (monochrome), Gray-scale, Indexed color (palette color), Multichannel color, Duotone (halftone), Lab color) пока не реализовал. Но у меня нет ни Adobe Photoshop, ни файлов в этих форматах. Попрошу на работе сделать примеры таких файлов, тогда займусь доработкой.

Не знал, что максимальный размер изображения в PSD формате всего 30000 х 30000 пикселей.

Simple Viewer GL Сегодня ночью взялся за доработку вьювера изображений – Simple Viewer. Давно хотелось отказаться от использования Gfl SDK. Эта библиотека является частью проекта XnView. Библиотека хорошая и удобная, хорошо документированная. Поддерживает более 100 графических форматов. Но она проприетарная.
Перейти от непосредственной работы с Xlib к OpenGL, что повысило бы скорость работы вьювера за счет аппаратного ускорения. Так же добавил возможность скроллинга и изменения масштаба с помощью мышки.
На данный момент использую Imlib2 для загрузки и декодирования изображений. Но т.к. Imlib2 не смог загрузить тестовый jpeg, созданный в GIMP, то мой выбор остановился на libjpeg. Для анимированных gif использую giflib.

Итак, что получилось в итоге, плюсы:

  • создание списка файлов и поиск позиции, с которой начался просмотр;
  • отказ от Gfl SDK в пользу Imlib2, libjpeg, libpng, giflib, libtiff;
  • поддержка JPEG через libjpeg;
  • поддержка PNG через libjpng;
  • поддержка GIF через giflib;
  • поддержка TIFF через libtiff;
  • поддержка PSD (еще не все фичи формата реализовал);
  • поддержка ICO (реализовал так же поддержку фреймов в формате PNG);
  • использование OpenGL;
  • отображение координаты и цвета пикселя под курсором (ключ командной строки -p или клавиша P);
  • разбиение больших изображений по нескольким текстурам;
  • быстрое скролирование изображения с помощью клавиатуры или мышки;
  • произвольное масштабирование изображения с помощью клавиатуры (- / +) или колеса мышки;
  • корректное автоматическое масштабирование изображений, не вмещающихся в окно вьювера;
  • отображение прогресса загрузки больших изображений;
  • возможность просмотра многостраничных изображений (клавиши PgUp / PgDn)

 
К сожалению есть и минусы:

  • анимированные GIF все еще не поддерживаются (но есть возможность просмотра отдельных фреймов);
  • нет поддержки многостраничных изображений сделана поддержка для TIFF, GIF, ICO;
  • нет никакой поддержки PSD; есть, сегодня ночью написал первую реализацию;
  • нельзя посмотреть EXIF (планирую сделать);
  • нет возможности переназначить “горячие” клавиши (планирую сделать);
  • нет информации о количестве бит на канал изображения изображения загруженные с помощью Imlib2 не имеют информации о кол-ве бит на пиксель;
  • нет возможности повернуть изображение (планирую сделать);
  • у меня есть изображение в формате jpeg (созданное для теста в GIMP), которое Imlib2 не может загрузить, хотя libjpeg спокойно его грузил; перешел на libjpeg – теперь проблем с JPEG нет;
  • не реализована загрузка огромных изображений маленькими блоками (это должно позволить быстро грузить огромные изображения и сильно экономить память);

 


В данный момент исходные коды Simple Viewer GL доступны на SourceForge.net в SVN. Забрать последнюю версию исходных кодов можно следующей командой:

svn co https://simpleviewer.svn.sourceforge.net/svnroot/simpleviewer simpleviewer

 


Добрый человек с LOR скрывающийся под ником AnDoR сделал ebuild для вьювера – simpleviewer-gl-9999.ebuild. Большое ему за это спасибо.

 


Предыдущая версия Simple Viewer.

  • Жизнь несправедлива, привыкай к этому.
  • Миру наплевать на твою самооценку. Люди ждут что ты сначала что-то сделаешь, а уже потом будешь гордиться этим.
  • Ты не будешь зарабатывать $40,000 сразу после школы. Чтобы стать вице-президентом и заиметь телефон в машине придется попотеть.
  • Если ты думаешь твой учитель слишком требователен, посмотрим что ты скажешь о своем боссе.
  • Переворачивать бургеры в McDonald не ниже твоего достоинства. У твоих дедов было другое слово для такой работы: шанс.
  • Если ты облажался, в этом нет вины твоих родителей. Если ты ошибся, не ной, а учись на ошибках.
  • До того как ты родился, твои родители не были такими нудными как сейчас. Они стали такими оплачивая твое образование, стирая твои штаны и слушая твои россказни о том, какой ты клевый чувак. Поэтому перед тем как спасать джунгли от врагов в виде старшего поколения, приберись в своей комнате.
  • Возможно в твоей школе учеников не делили на победителей и лузеров. В некоторых школах тебе дадут возможность переделать домашку до тех пор, пока ты не сделаешь все правильно. Это не имеет ни малейшего отношения к тому что происходит в реальной жизни.
  • Жизнь не делится на семестры. В ней не бывает летних каникул и очень немногие работодатели заинтересованы помочь тебе найти себя. Тебе придется заниматься этим в свободное от работы время.
  • Картинка в телевизоре не имеет отношения жизни. В жизни люди идут на работу, а не просиживают штаны в кофейнях.
  • Дружи с ботанами. Не исключено, что в итоге один из них станет твоим боссом.

Украдено с LOR.

UPD:
14 правил Чарльза Сайкса, более известные как 11 Правил Билла Гейтса.

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

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

Статья “Как заставить неправильный код выглядеть неправильно”, поясняет в чем отличие Венгерской для Приложений (Apps Hungarian) от Системной Венгерской.
Я давно перестал использовать Венгерскую нотацию, которая на самом деле была Системной Венгерской. Но только сейчас понял, почему мне она казалась несколько странной.

Системная Венгерская:

char szVar[]; // ясен только тип переменной, но не ее назначение
unsigned long ulVar; // аналогично

Венгерская для Приложений:

float dxVar; // назначение - хранить информации о дельте по ширине
int cVar; // счетчик

Более подробно написано в статье и в ссылках в конце статьи.

Название числа с 27 нулями (1 000 000 000 000 000 000 000 000 000) Гелла.
Название числа с 24 нулями (1 000 000 000 000 000 000 000 000) Йотта.

Белорусский ADS-модем “Промсвязь ADS модем М-101 А” – белая, далеко не маленькая коробка. Кто был дизайнером не знаю. Но мозгов у него не было – часть портов повернуты языками вниз, часть вверх. Крепление на стену предполагается только в одном положении – кабелями вверх.
Шел этот хлам без упаковки, с совершенно бесполезной инструкцией на пару страничек. В которой не были описаны дефольтные настройки (IP, логин/пароль к админке). Кроме того, модем был не настроен.
continue reading…

Если вам надоело постоянное гудение и мерцание лампы дневного света во время ее запуска и выхода в рабочий режим, то попробуйте подключить ее по схеме, которая приведена в статье “Запуск лампы дневного света без стартера”.
Эта схема позволяет зажечь лампу быстро, без утомительного жужжания и мерцания.