суббота, августа 22, 2009
Познакомился с Еленой Эланж
Как правило, фотографии красивых женщин лучше оригинала. Елена - не правило.
пятница, августа 21, 2009
Гнездо Маклаудов
Попал туда второй раз в жизни. В первый раз было полно людей, коров и комбайнов. Я плохо стоял на земле и смотрел на всех снизу далеко наверх. Брежнев ещё не впал в маразм и был чернобровым брюнетом.
Это райцентр. Дорожный указатель самой деревни снять не удалось: его нет, как, впрочем, и дороги, и деревни.
В дом пробрался я один. Кто не захотел; а кто не захотел расстраиваться.
среда, августа 19, 2009
вторник, августа 18, 2009
четверг, августа 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, вообще можно рехнуться. Придётся писать разные яваскрипты для разных браузеров, и для разных версий Эксплорера тоже.
Установка свойства 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
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: все краски там есть, они не могут не есть:
Вот, собственно, и вся история.
Задача: подготовить макет для печати на чёрных полиэтиленовых пакетах. Доступные краски: белая, серебро и золото.
Макет, сделанный ранее для полноцвета, выглядит так:
План действий: напечатать фоновую картинку серебряным полутоном, буквы и лого — комбинацией белого и золота.
Мысль использовать для этого 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
Реалии жизни в двух картинках
суббота, августа 08, 2009
Lost in translation
Сценка утром у окошка дежурного магазина.
Сосед-алканавт, которого я в жизни не видел трезвым, громогласно бушует:
— Как это нет яиц, мать-перемать? Мне два яйца надо купить коту!!
Из окошка ему вежливо советуют пришить старые, если не выкинули.
Мужик с минуту ошарашенно обдумывает предложение, потом разражается гневной отповедью, из которой вся улица узнаёт, что продавщица дура и гетера преклонных лет, а его друг Константин помирает, яишенки просит...
Сосед-алканавт, которого я в жизни не видел трезвым, громогласно бушует:
— Как это нет яиц, мать-перемать? Мне два яйца надо купить коту!!
Из окошка ему вежливо советуют пришить старые, если не выкинули.
Мужик с минуту ошарашенно обдумывает предложение, потом разражается гневной отповедью, из которой вся улица узнаёт, что продавщица дура и гетера преклонных лет, а его друг Константин помирает, яишенки просит...
пятница, августа 07, 2009
Очевидные функции для взаимодествия с Google Maps
Сделаны для редактора объектов на карте сайта Прим-Поиск. Функции совершенно незатейливы, но, возможно, спасут кого-то от написания в 1000-й раз совершенно незатейливых функций.
Требуется jquery, хотя можно переписать и более длинно без неё.
Установка перемещаемого маркера и отслеживание его перемещения с записью новых координат в поля ввода:
Требуется 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);
}
});
Ярлыки:
прим-поиск,
программирование,
google maps,
javascript
среда, августа 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.
но неясно, относится ли оно к моменту завешивания.
Экстремальности мероприятию добавляет использование девелоперских сборок 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. это всё равно что голую дефку по улице пустить с табличкой ВЫ**И МЕНЯ. Вы**ать вряд ли получиццо, но желающих попробовать будет масса
(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 штук.
Думаю, что мне надо не только числиться в реестре, но и стоять там маленьким, но нерукотворным монументиком :-D поскольку первое коммерческое применение Gimp (в версии, если правильно помню, 1.25) относится к 1999 году, когда в нём был нарисован дизайн картонки-подставки под пивной стакан на beer-party по случаю 7-летия компании, созданной в 92-м году, что даёт нам 1999 год.
Скан уцелевшего экземпляра прилагается. Векторная часть картинки и текст на обороте делались в Sketch 1.6. Было поделено в Фотошопе (что кривить душой; да и Separate+ тогда ещё не было) и отпечатано в Гонконге тиражом что-то около 500 штук.
Подписаться на:
Сообщения (Atom)