понедельник, 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 .

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

воскресенье, 16 января 2011 г.

USB кабель для плеера BBK V11N

Мне по случаю достался плеер BBK V11N (в миру OPPO).
Всем он хорош, и тонкий, и APE/FLAC читает, но..
Единственная загвоздка была в том, что был утерян data-кабель.

Разъем слава богу используется в этом плеере стандартный USB 8-pin, но хитроглазые корейцы запутали стандартную разводку и придумали свою, так что с кабелем от GPRS модема, с таким же USB 8-pin, плеер работать отказался.

После недолгого общения с Google выяснилось, что разводка на всех плеерах серий V и Q вышеупомянутой фирмы одинакова, так что, думаю этот пост будет полезен определенной части населения (судя по форуму BBK шнуры теряются "на ура", а достать новый в сервисном центре не так то просто).

Кроме того отдельно большое спасибо отправляется хорошему человеку Егору Иванову за предоставленную информацию о разводке.

Нумерация контактов на штекере:



















Распиновка разъёма на плеере:







1 - +5B (красный провод USB кабеля)
2 - D- (белый)
4 - D+ (зелёный)
5 - GND (черный )
8 - GND (черный)

Лучше всего сначала соединить 5 и 8 контакты на штекере перемычкой, а потом припаивать остальные проводки.

пятница, 3 сентября 2010 г.

Сетевой принтер/сканер HP3052 и Ubuntu

На работе подобный аппарат. Понадобилось отсканировать бумажек. Оказалось, всё прекрасно работает по сети под Ubuntu.
Вкратце настройка (взято отсюда):
Вариант 1. Используем HP Setup

sudo hp-setup

После этого появится мастер настройки — выбрать подключение, выбрать принтер.
Должно работать.

Вариант 2. Это в случае, если для добавления принтера использовалось окно Gnome Printers, после чего возможность сканирования по сети оказывается недоступной.

Сначала определяем URI принтера по его IP-адресу.

hp-makeuri IP-ADDRESS

Где IP-ADDRESS - это IP-адрес.(!)

В итоге получим подобное:

CUPS URI: hp:/net/HP_LaserJet_3052?ip=10.115.19.8
SANE URI: hpaio:/net/HP_LaserJet_3052?ip=10.115.19.8
HP Fax URI: hpfax:/net/HP_LaserJet_3052?ip=10.115.19.8

Теперь, зная URI, можно уже сканировать через xsane:

xsane SANE-URI

В данном случае будет одна только проблема: сканер будет доступен временно. То есть, для сканирования нужно будет каждый раз вводить URI.

Для того, чтобы сканер был доступен всегда, нужно в файле /etc/cups/printers.conf заменить socket DeviceURI на hp URI, отображаемый командой hp-makeuri.

DeviceURI socket://10.115.19.8:9100

Меняем на:

DeviceURI hp:/net/HP_LaserJet_3052?ip=10.115.19.8

Однако и тут будет заковырка - теперь принтер не будет доступен для изменения через Gnome Printers. Решается всё просто — созданием двух профилей принтера: один — для печати (с DeviceURI socket://), другой (с DeviceURI hp://) — для сканирования и проверки уровня чернил, например, через HPLIP Toolbox.

четверг, 2 сентября 2010 г.

Генерация нового xorg.conf

Поломался на работе xorg.

Команда sudo dpkg-reconfigure xserver-xorg молчала.

Оказалось сделать новый файл конфигурации до смешного просто: sudo Xorg -configure.

Создал xorg.conf.new в домашней папке.

После чего sudo cp ~/xorg.conf.new /etc/X11/xorg.conf. Всё.