вторник, 21 сентября 2010 г.

Тонкая настройка hdd и hdparm

Информация

hdparm -i /dev/hda

Расшифровка:
MaxMultSect: Это поле содержит максимальное число секторов, которое ваш жесткий диск может прочитать за "один присест".
MultSect: Текущая настройка количества секторов, считываемых за один раз.
PIO modes и DMA modes: Здесь перечисляются режимы, которые поддерживает жесткий диск. Режим, помеченный символом "звездочка" (*), является текущим.
AdvancedPM: Признак 'yes' указывает на то, что жесткий диск поддерживает APM (Advanced Power Management - Расширенное Управление Питанием).

Дополнительная информация

hdparm /dev/hda

multcount - число секторов, считываемых одновременно;
I/O support - режим обмена с жестким диском (16/32/32sync);
using_dma - указывает, используется ли в настоящий момент режим DMA или нет;
keepsettings - указывает, сохраняются ли настройки после программного сброса (изменять эту настройку не рекомендуется, если вы не уверены в том, что делаете);
readonly - обычно установлен в 1 только для CD-ROM, этот флаг сообщает системе - является ли устройство read-only или нет;
readahead - количество секторов для опережающего чтения;

Настройка

-c1 -- установка 32-х битного режима (обычно то, что вам нужно)
-d1 -- включение DMA
-mN -- количество секторов передаваемых сразу (одним блоком). Степень двойки,
максимальное число -- параметр MaxMultSect в выводе hdparm -i.
-aN -- опережающее чтение N секторов

Тестирование:

hdparm -t <имя устройства>

hdparm -u1c1d1m8a8 <имя устройства>

Взято отсюда http://www.opennet.ru/base/sys/htparm_tune.txt.html

понедельник, 20 сентября 2010 г.

Ручная установка и ошибка шрифта fixed

Итак, установил Slackware 12.2 на ноутбук в минимальной конфигурации. Затем доустановил иксы, в результате при запуске такая ошибка:

FATAL ERROR:
could not open default font 'fixed'.

Лечиться следующим образом:

mkfontdir /usr/share/fonts/mics

для остальных шрифтовых каталогов тоже желательно сделать

воскресенье, 12 сентября 2010 г.

perl, hash и сортировка

Сортировка ключей по численному сравнению ассоциированных значений:
foreach(sort {$hash{$a} <=> $hash{$b}} keys %hash) {
print $_,'=',$hash{$_},"\n";
}


Сортировка ключей по алфавиту ассоциированных значений:
foreach $key(sort {$hash{$a} cmp $hash{$b}} keys %hash){
print $key, " = ", $hash{$key},"\n";
}

найдено тут http://www.opennet.ru/docs/RUS/perl_hash/, но все время забывается.

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

Округление в perl

"Отбрасывает" дробную часть int ()

Округление с заданной точностью.
$rounded = sprintf("%.2f",$unrounded);

понедельник, 6 сентября 2010 г.

GD::Graph::lines и кириллица

Уже не первый раз сталкиваюсь с тем, что GD::Graph::lines не нормально выводит кириллицу в подписях и метках. А поменять ситуацию не выходило. В итоге принято решение патчить lines.pm (тот, что в /usr/lib/perl5/site_perl/5.10.0/GD/Graph) и добавить в него соответствующие методы:

sub set_label_font # (fontname)
{
my $self = shift;
$self->_set_font('gdta_label', @_) or return;
}

sub set_value_font # (fontname)
{
my $self = shift;
$self->_set_font('gdta_value', @_) or return;
}


sub set_x_label_font # (fontname)
{
my $self = shift;
$self->_set_font('gdta_x_label', @_);
}
sub set_y_label_font # (fontname)
{
my $self = shift;
$self->_set_font('gdta_y_label', @_);
}
sub set_x_axis_font # (fontname)
{
my $self = shift;
$self->_set_font('gdta_x_axis', @_);
}

sub set_y_axis_font # (fontname)
{
my $self = shift;
$self->_set_font('gdta_y_axis', @_);
}

sub set_values_font
{
my $self = shift;
$self->_set_font('gdta_values', @_);
}

sub set_legend_font # (font name)
{
my $self = shift;
$self->_set_font('gdta_legend', @_);
}

Теперь их своего скрипта их можно вызвать к примеру так:
my $graph = new GD::Graph::lines;
$graph->set_title_font("/usr/share/fonts/TTF/times.ttf",18);
$graph->set_label_font("/usr/share/fonts/TTF/times.ttf",14);
$graph->set_x_label_font("/usr/share/fonts/TTF/times.ttf",10);
$graph->set_y_label_font("/usr/share/fonts/TTF/times.ttf",10);
$graph->set_x_axis_font("/usr/share/fonts/TTF/times.ttf",10);
$graph->set_y_axis_font("/usr/share/fonts/TTF/times.ttf",10);
$graph->set_values_font("/usr/share/fonts/TTF/times.ttf",10);
$graph->set_legend_font("/usr/share/fonts/TTF/times.ttf",10);

Пути к шрифтам естественно свои подставить. И вся кириллица стала в норме.