суббота, августа 22, 2009

Познакомился с Еленой Эланж

Как правило, фотографии красивых женщин лучше оригинала. Елена - не правило.

пятница, августа 21, 2009

Гнездо Маклаудов

Попал туда второй раз в жизни. В первый раз было полно людей, коров и комбайнов. Я плохо стоял на земле и смотрел на всех снизу далеко наверх. Брежнев ещё не впал в маразм и был чернобровым брюнетом.



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





В дом пробрался я один. Кто не захотел; а кто не захотел расстраиваться.


среда, августа 19, 2009

Липецк: дорожная схема


У них такое на каждом шагу: все в крестах, дома в иконах, знаки - и те.

вторник, августа 18, 2009

18 августа.

Кого касается, улыбнётся. Остальных не касается.

Липецк


Вообще-то на гербе города липа, но я другого мнения: Липецк - это яблоки.

четверг, августа 13, 2009

Увидимся в сентябре.

Улетел. Стоп машина. Бросаем работу. Оставил любимой музыки на офсайте для скучающих читателей.

Invalid Explorer: cursor: pointer для area

О глюках Эксплорера написаны целые энциклопедии. Я тоже начал собирать свою. Мини. Напарываюсь на глюки регулярно, каждый раз вспоминаю, что там надо делать для обхода. Придётся вести реестр. Для себя же.

Установка свойства CSS cursor для map - area. Не устанавливается. Проблема не так велика, поскольку area почти всегда является линком, и палец над ней возникает сам собой. В Майкрософте решили этим удовлетвориться. О том, что могут быть активные области без линков, управляемые яваскриптом, они не подумали.

Обход: как в прошедшем XX веке, задавать свойство pointer всей родительской картинке по onmouseover и восстанавливать по onmouseout. Я думал, те дремучие времена навсегда забыты. У МS никто не забыт... и ничто не забыто.

...img src="img/buttons.png" id='btns'...

...area shape="rect" coords="129,74,334,99" onclick="page('skills')" onmouseover="setPtr()" onmouseout='resetPtr()'...

function setPtr() {
$('#btns').css('cursor','pointer');
}

function resetPtr() {
$('#btns').css('cursor','auto');
}

Если при этом не использовать jQuery, вообще можно рехнуться. Придётся писать разные яваскрипты для разных браузеров, и для разных версий Эксплорера тоже.

среда, августа 12, 2009

Очередной flash-баннерок... упс, уже два.

Учёта ради, отчётности для.



Scribus + многокрасочный макет: звезда в шоке.

Шок приятный: всё получилось.

Задача: подготовить макет для печати на чёрных полиэтиленовых пакетах. Доступные краски: белая, серебро и золото.

Макет, сделанный ранее для полноцвета, выглядит так:



План действий: напечатать фоновую картинку серебряным полутоном, буквы и лого — комбинацией белого и золота.

Мысль использовать для этого Scribus и Gimp сперва показалась мне скабрезной шуткой, но только сперва.

Шаг 1. Фоновое изображение.

Теория. Светлота тона должна перейти в количество серебряной краски. Как этого добиться? Поковыряв Scribus, я убедился, что назначить полутоновой картинке типографскую краску там невозможно. Но impossible just takes a little longer ©. Мы можем задать любой цвет рамке, в которой стоит изображение. Поместив туда правильное изображение, мы получим нужное количество краски на выходе. Фактически, изображение нужно нам как маска.

Подготовка в Гимпе. Обесцвечиваем изображение, оставляя его в RGB (иначе станут невозможными кое-какие следующие шаги). Светлые тона дóлжно заменить прозрачностью, через которую будет просвечивать серебряная краска. Добавляем альфа-канал и делаем Слой - Прозрачность - Цвет в альфа-канал; цвет выбираем белый. Результат:



Переводим в grayscale, сохраняем в PNG с прозрачностью.

Действия в Scribus. Создаём документ в размер печатного поля. Создаём блок изображения, помещаем туда наш PNG, выравниваем по левому верхнему краю страницы. Приводим блок к размеру изображения. Убираем обводку, если есть. Создаём плашечный цвет произвольного названия (Silver — чтобы никто не догадался):



Назначаем его фоном фрейма изображения. Пыщ, пыщ.



Я даже подложил под него чёрный квадрат, чтобы убедиться, что я вижу серебряную краску, а не фон страницы. Убедился.

Шаг 2. Графика и текст.

Здесь всё почти что просто. Создаём ещё два плашечных цвета:



Нам необходим плашечный белый цвет, потому что мы печатаем настоящей белой краской по настоящему чёрному фону.

Единственный сложный момент здесь — как напечатать буквы «Ре» на полукруге. Полукруг будет золотой. Ни одна из доступных красок — белая и серебряная — не будет на нём читаться. Единственный выход: прорезать в золоте дырки по форме букв:



Для этого рисуем круг и создаём текст «Ре». Выделяем текстовый фрейм, делаем: Объект - Преобразовать в - Контуры. Получаем группу. Разгруппировываем её и объединяем в один контур: Объект - Объединить многоугольники. Выделяем вместе с кругом и повторяем объединение. В круге прорезается дырка.

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

Шаг 3. Экспорт в PDF.

Здесь ничего сложного, но при первой попытке я выбрал PDF/X-3 и получил растровое изображение в виде битмапа с 50-процентным порогом. Пораскинув умишком, я догадался, что иначе быть не может в стандарте, исключающем прозрачность. Выбрал PDF 1.6, открыл файл в Акробате Про и посмотрел Output Preview: все краски там есть, они не могут не есть:



Вот, собственно, и вся история.

понедельник, августа 10, 2009

Реалии жизни в двух картинках

1) Объявление в регистратуре детской горбольницы о необходимости приобретения медполиса.



2) структура таблицы, используемой на сайте одного из заказчиков:



Натурально, каждая картинка стóит ста слов... о демографии, экономике, коррупции.

суббота, августа 08, 2009

Lost in translation

Сценка утром у окошка дежурного магазина.

Сосед-алканавт, которого я в жизни не видел трезвым, громогласно бушует:

— Как это нет яиц, мать-перемать? Мне два яйца надо купить коту!!

Из окошка ему вежливо советуют пришить старые, если не выкинули.

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

пятница, августа 07, 2009

Очевидные функции для взаимодествия с Google Maps

Сделаны для редактора объектов на карте сайта Прим-Поиск. Функции совершенно незатейливы, но, возможно, спасут кого-то от написания в 1000-й раз совершенно незатейливых функций.

Требуется jquery, хотя можно переписать и более длинно без неё.

Установка перемещаемого маркера и отслеживание его перемещения с записью новых координат в поля ввода:
var marker = new GMarker(new GLatLng(lat, lng),
{draggable: true});
map.addOverlay( marker );
GEvent.addListener(marker, 'dragend', function() {
$('#lng').val(marker.getLatLng().lng());
$('#lat').val(marker.getLatLng().lat());
});
Создание по клику перемещаемого маркера на карте с показом и обновлением его координат и предотвращением добавления новых маркеров:
var clickListener = GEvent.addListener(map, 'click',
function(overlay,point) {
if (point) {
var marker = new GMarker(point, {draggable: true});
map.addOverlay(marker);
$('#lng').val(marker.getLatLng().lng());
$('#lat').val(marker.getLatLng().lat());
GEvent.addListener(marker, 'dragend', function() {
$('#lng').val(marker.getLatLng().lng());
$('#lat').val(marker.getLatLng().lat());
});
GEvent.removeListener(clickListener);
}
});

среда, августа 05, 2009

Inkscape: обложка брошюры

Из неистребимой любви к сексу с кактусами затеялся с изготовлением очередной PDF-брошюры в опенсорсе. Подбодрила установка на сугубо электронный формат издания, печать не предполагается (пока).

Экстремальности мероприятию добавляет использование девелоперских сборок Inkscape и Scribus (0.47 pre0 и 1.5.0.svn).

В какой-то степени готовности пока только обложка:



Из текущих косяков Inkscape:

1) ошибки выбора объектов. Щёлкаешь мышкой на объекте — выбирается совсем другой объект (но непременно лежащий сверху). Приходится часто насиловать Tab. Подозреваю, что это связано со старой проблемой, когда bounding box объекта почему-то оказывается гораздо больше его фактических размеров. Старый Инкскейп иногда давал артефакты в этом боксе; новый не даёт вроде, однако проблема проявилась с иной стороны.

2) При редактировании контролек градиента на холсте они стремятся приснапиться к чему-нибудь (постоянно выскакивает пояснение типа «рычаг к площадке»), отключение всех мыслимых снаппингов ничего не меняет.

PDF обложки из Инкскейпа весит немыслимые 4.5 мегабайта, что побудило меня экспортировать обложку в растр и вставить в Scribus, чтобы затем вывести с даунсэмплингом и сжатием. Здесь обнаружился косяк экспорта. PNG, экспортированный непосредственно из Инкскейпа, в PDF-файле имеет неприемлемые артефакты:



В случае ручки они проходят по границе обтравочного контура, на карточке — неясно, в том месте границы сразу нескольких объектов (обтравочный контур, впрочем, тоже присутствует). Белый фон с этом PNG на деле прозрачный. Связываю проблему с особенностями сохранения в PDF растра с альфа-каналом, присущими Scribus 1.5.0 (не проверял предыдущие версии, некогда). Сведение растра в Гимпе перед помещением в Scribus полностью вылечило рисунок, конечно.

Добавление час спустя: импорт документа Word завешивает Scribus. В терминале видно сообщение:

QProcess: Destroyed while process is still running.

но неясно, относится ли оно к моменту завешивания.

понедельник, августа 03, 2009

Scribus 1.5.0.svn

Собрал сабж.



Ещё не успел толком попользоваться, но отметил, что главный предмет моего гундежа — невозможность произвольно менять все аспекты стиля любого куска текста — полностью испарился. Можно всё.

Выбрать время и попробовать вывести что-нибудь недетское, да цветное.

Мой мини-башорг

(16:54:29) Salted: тормознуто тока однако
(16:55:32) 852138: ну... задержки линии плюс туннелирование... да и сервак не самый быстрый на свете... **ут его ещё постоянно кулхацкеры
(16:56:09) Salted: да ты че серьёзно что ли про кулхацкеров?
(16:57:17) 852138: йопт. он принимает соединения по ssh. это всё равно что голую дефку по улице пустить с табличкой ВЫ**И МЕНЯ. Вы**ать вряд ли получиццо, но желающих попробовать будет масса

воскресенье, августа 02, 2009

Акция «GIMP для организаций»

Нашёл такое на ПроГимпе.

Думаю, что мне надо не только числиться в реестре, но и стоять там маленьким, но нерукотворным монументиком :-D поскольку первое коммерческое применение Gimp (в версии, если правильно помню, 1.25) относится к 1999 году, когда в нём был нарисован дизайн картонки-подставки под пивной стакан на beer-party по случаю 7-летия компании, созданной в 92-м году, что даёт нам 1999 год.

Скан уцелевшего экземпляра прилагается. Векторная часть картинки и текст на обороте делались в Sketch 1.6. Было поделено в Фотошопе (что кривить душой; да и Separate+ тогда ещё не было) и отпечатано в Гонконге тиражом что-то около 500 штук.

Поиск по этому блогу