[Без заголовка]

Когда-то я делал библиотеку PEAR для графических форматов XBM и BMP (монохромного). Хотелось получить средство вывода графики в том случае, если на хостинге нет библиотеки GD, чтобы, хотя бы, какие-то простенькие диаграммы можно было строить. BMP - персонально для IE, в котором убрали поддержку формата BMP из-за ошибки в библиотеке отображения этого формата. Парням из Microsoft показалось, что проще ликвидировать поддержку, чем исправлять ошибку.

Одним словом, какое-то время назад у меня опять зачесались руки осчастливить человечество библиотекой, поддерживающей какой-нибудь умирающий формат.

Когда-то, когда сотовые телефоны ещё были большими, была такая штука - WAP, этакий урезанный WWW для сотовых телефонов. Собственно, WAP и сейчас пока живее всех живых, хотя сайтов в этом формате относительно немного. В WAP использовались картинки в специальном формате - WBMP (Wireless BMP, level 0). Если кому-нибудь ещё интересен этот формат - добро пожаловать, у меня теперь есть библиотека для работы с ним.
Комментировать
6 апреля 2006 19:00

[Без заголовка]

Как-то очень давно я наткнулся в сети на язык с названием Brainfuck. Его идея, так подходящая к его названию, так меня захватила, что я в своё время создал оптимизирующий компилятор программ Brainfuck в JavaScript, выполненный в виде минишелла и работающий прямо в браузере. Язык интересен тем, что содержит всего восемь конструкций, но позволяет писать программу любой сложности, правда скорость выполнения...

Дело давнее, но около месяца назад, поддавшись какому-то невнятному импульсу, я вернулся к идее оптимизирующего компилятора. Поскольку, в данный момент язык-фаворит для меня PHP, мне захотелось, руководствуясь теми же принципами, написать компилятор Brainfuck в PHP, что я и сделал.

Модуль к PHP написан в формате PEAR, т.е. его можно либо использовать непосредственно, либо исталлировать в составе PEAR.

Нельзя сказать, что я компилятор проводит глубокую оптимизацию, но, например, код "[->+>++<<][>+>[-]<<-][>+<[-]]" будет преобразован в
$in = array(0, $id = 0);
$d = array_fill(-65535, 65535, $di = 0);

$d[$di+1]+= $d[$di];
$d[$di+2]+= $d[$di]*2;
$d[$di] = 0;

$d[$di+1]+= $d[$di];
if ($d[$di]) $d[$di+2] = 0;
$d[$di] = 0;

$d[$di+1]+= $d[$di];
$d[$di] = 0;
В сам PEAR-репозиторий я его выкладывать не буду - даже по моим меркам это не слишком полезная штука, да и вряд ли за него проголосуют (все модули на PEAR подвергаются процедуре голосования, прежде чем попадут в репозиторий).
Комментировать
21 октября 2005 19:00

[Без заголовка]

В основном на PHP пишут небольшие проекты, поэтому литература кишит примерами "как сделать сайт в три странички". Но, тем не менее, только простыми сайтами дело не ограничивается. Когда приходится делать производительные проекты, существует множество ухищрений и решений, одно из которых - использовать разделяемую память, там где кешировать данные в статические файлы не получается. Различных API для использования разделяемой памяти много, только в одном PHP есть shmop, shm_* и Memcache, что несколько осложняет дело.

Я сделал PEAR-класс System::SharedMemory для работы с разными видами разделяемой памяти, получить его можно у меня или на сайте PEAR.

В настоящий момент поддерживаются следующие API:
Комментировать
21 октября 2005 19:00

[Без заголовка]

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

Было время, меня увлёк графический формат XBM, единственное достоинство которого (впрочем, вполне достаточное, на мой взгляд) - безумная простота, позволяющая манипулировать графикой в этом формате из любого хоть чего-то стоящего языка программирования. Я даже разродился модулем ImageXBM и прочими вещами.

И вот я узнаю, что Internet Explorer 6.0SP1 и выше не поддерживает мой любимый формат! Причину цитирую:

A change was made to Internet Explorer for Windows XP Service Pack 2 and Windows Server 2003 Service Pack 1 so that it does not render the XBM image file format. This update adds this change to all other supported versions of Internet Explorer. This change has been made to help prevent the Internet Explorer process from closing unexpectedly when users view invalidly-formed images. The XBM format is no longer supported by Internet Explorer.


Что переводится, примерно, так: "у нас что-то не работало, поэтому мы просто это отключили". Оплакал я смерть формата, которые за годы своей жизни так и не стал известен большинству разработчиков, да и сделал другой модуль.

Image_MonoBMP - модуля для работы с монохромными изображениями в формате BMP. А чтобы подтвердить, что я опять дарю вам то, что вы себе сами бы не купили, скажу, что этот формат, конечно, поддерживается Internet Explorer и Opera, но FireFox плевать на него хотел, да, в общем-то, и правильно.

Кстати, есть у меня идея сделать поддержку WBMP, но как же быть с принципом? Впрочем, я его уже нарушил, но об этом как-нибудь в другой раз.
Комментировать
4 сентября 2005 19:00