пятница, 27 апреля 2012 г.

Пакетная обработка изображений в GIMP

GIMP поддерживает пакетную обработку через командную строку, однако имеется и крошечная графическая утилита, разработанная Дэвидом Ходсоном, легко и быстро компилируемая и устанавливающаяся прямо в меню GIMP.


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


Пакет доступен также и для Windows.

Скачать английскую версию можно с сайта автора.
Также есть и русифицированная версия, её можно скачать здесь.

Установка элементарна — распакуйте архив, make install. Всё.

вторник, 17 апреля 2012 г.

Архивация встроенных web-шрифтов

Поскольку встраиваемые на веб-страницы шрифты зачастую бывают довольно большого размера, это негативно сказывается на производительности. Поэтому надо их подвергнуть небольшому фитнесу через gzip-сжатие. Конечно, для этого сервер должен поддерживать эту функцию.

Как показывает статистика (спасибо, Stoyan Stefanov!) выгода от использования сжатия файлов шрифтов лежит в пределах 40-45% от исходного размера, что весьма не мало!

Итак, для сжатия файлов шрифтов (впрочем, любых файлов), можно использовать метод, использующий управление сервером через файл .htaccess, лежащий в корневом каталоге сайта.

Там надо указать новые типы файлов:

Addtype font/otf .otf
Addtype font/ttf .ttf
Addtype font/eot .eot

А затем указать Apache сжимать их (вместе с текстовыми файлами):

AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/x-javascript font/otf font/ttf font/eot

Фоновое изображение как ссылка


Делая сайт для своей группы столкнулся с проблемой — логотип был сделан в виде background-image в div#header, тем самым не было возможности напрямую использовать его как ссылку на главную страницу.

Однако всё решается довольно просто путём добавления ссылки в виде элемента <span> и помещения его в блок с абсолютным позиционированием с размерами, равными размеру фонового изображения, вкупе со скрытием содержимого <span> через CSS.

Следующий код наглядно иллюстрирует этот способ:

HTML-часть:

...
<div id="header">
  <a href="index.php" id="logo"><span>На главную</span></a> 
...

CSS-часть:

...
div#header
{
   height:145px; 
   padding:0 0 0 0; 
   background: url(../image/stamp_new.png) no-repeat; /* логотип */
}

a#logo
{
    position: absolute;
    top: 0;
    left: 0;
    width: 310px;
    height: 145px;
}

a#logo span {display: none;}
...

понедельник, 14 ноября 2011 г.

Словарь синонимов в формате *.dsl

Используя очень часто в работе отличную оболочку для словарей Goldendict, озаботился словарём синонимов под него. Как оказалось, такой есть для Lingvo (словари которого, кстати, Goldendict понимает), но в закрытом формате lsd (которого GD не понимает по известным причинам).
Переконвертировал в dsl. Может кому-нибудь понадобится. Вещь полезная.

суббота, 7 мая 2011 г.

Небольшое улучшение для OpenClipArt

Среди прочих задач для Open ClipArt Library понадобилось решить следующую:
Движок сайта позволяет создавать растровые копии из SVG "на лету", для этого используется следующая конструкция ссылки:
http://www.openclipart.org/image/800px/svg_to_png/goose_necklace.png
Таким образом можно создавать файлы PNG с разрешением вплоть до 3840px.
Идея улучшения - иметь окно, для ввода желаемого разрешения и выводить текст результирующей ссылки туда же, для удобства копирования.

Код с комментариями:

<!-- lossy form handler -->
<script type="text/javascript">
// главная функция
function link_res_view(x)
{
var y=document.getElementById(x).value;
    TestVar = isNumberString (y); //вызов функции проверки поля ввода на недопустимые символы
    if (TestVar == 1) {           //если успешно, переход к проверке на максимальное значение
  if (y > 3840) {
   alert("Resolution couldn't be higher 3840px!\r\nPlease download SVG and produce bitmap locally.");
   $("input[name=resolution]").val('Type resolution of bitmap');} else { 
        var bitmap_link = $('a[href*="/image/800px/"]').attr('href').replace("800", y); 
        $("input[name=resolution]").val(bitmap_link);
  $('a[href*="/image/800px/"]').attr('href',bitmap_link); 
  }
    }
    else {
        alert("C'mon - resolution is digits only!");
        $("input[name=resolution]").val('Type resolution of bitmap');
   }

// проверка поля ввода на недопустимые символы (принимаются только цифры)
function isNumberString (InString)  {
    if(InString.length==0) return (false);
    var RefString="1234567890";
    for (Count=0; Count < InString.length; Count++)  {
        TempChar= InString.substring (Count, Count+1);
        if (RefString.indexOf (TempChar, 0)==-1)  
            return (false);
    }
    return (true);
}
}
// очистка поля ввода по клику   
function clickclear(thisfield, defaulttext) {
if (thisfield.value == defaulttext) {
thisfield.value = "";
}
}
// восстановление исходного текста, если ничего не введено
function clickrecall(thisfield, defaulttext){
    if (thisfield.value == "") {
        thisfield.value = defaulttext;
    }
}
</script>

И HTML-код:
<input type="text" name="resolution" id="resolution"
            value="Type resolution of bitmap" onclick="clickclear (this, 'Type resolution of bitmap')"
            onblur="clickrecall (this, 'Type resolution of bitmap')"
            onchange="link_res_view(this.id)">

пятница, 15 апреля 2011 г.

DoudouLinux logo and mascot contest!


DoudouLinux (DDL) is a Linux distro for kids from 2 to 12 yrs old. It is specially designed to make computing easy for children (and their parents too!). Could run without installation from USB or LiveCD. So, if you have kidz - DoudouLinux made specially for them!

It have tend to be unique from other boring Linux distro, which changes only app version and wallpapers a bit.
We're hope to attract designers community for this project (also we need more translators - DDL translated now for more, than 15 languages!)

First step in this activity was to start Logo and Mascot contest on famous Open Clip Art Library. DoudouLinux already have graphical characters, which appear on DDL website, and will appear in the environment, so we need logo and mascot, which suit well with them.

So - if you want to receive a little bit of fame (why not?!) - you're more than Welcome to join this contest!

среда, 16 февраля 2011 г.

Проблема с /usr/bin/X — 100% загрузки процессора

После обновления на рабочем компьютере с Ubuntu 10.04 на 10.10 вылезла проблема — после некоторого времени работы, загрузка процессора вырастала до 100% и, соответственно, работать становилось невозможно.

htop выдал виновный процесс — root 1119 90 1.8 123216 29128 tty7 Rs+ 07:31 0:10 /usr/bin/X :0 -nr -verbose -auth /var/run/gdm/auth-for-gdm-md0Wmu/database -nolisten tcp vt7

Судя по всему проблема заключается в том, что на компьютере стоит древняя видеокарта ATI Radeon X550, использование которой возможно только с открытым драйвером radeon.

Как вариант временного решения проблемы можно перезапускать metacity с помощью команды metacity --replace .

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