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

Скрипка

Только что купил себе новую скрипку 4\4.
В Кемерово есть лишь один магазин, в котором продаются акустические скрипки - и даже там осталась последняя целая1!
Мне продали со скидкой, потому что одна девочка,когда смотрела, порвала на ней струну. И тут я обнаружил,что во всём городе нет ни одного магазина, где бы продавали струны для скрипки!!!
Наваждение. Достать струны сложнее,чем достать инструмент.
P.S. Обнаружил,что я совершенно не знаю, как с ней обращаться. У меня никогда не было новой скрипки: все мои скрипки были либо школьными, либо б\у. Она хрипит у меня в руках и я не знаю,в чём дело - то ли смычок недоканифолил (опять же, канифолить его надо непривычно долго), то ли разучился, то ли струны недотянул. И очень не хватает камертона, мне не с чем струны настраивать. Ну не включать же на компьютере синтезатор?!

1: Скрипки делятся по своим размерам на 1\4 (четвертинка; это для малышей), 2\4 (половинка), 3\4 и взрослая - 4\4 (целая),самая большая.Названия, понятно, идут по длительностям нот.

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

Perl и преобразование регистра

Недавно хорошо промучился с преобразованием регистра в Perl. Дело в том,что Perl и Юникод не на короткой ноге, поэтому простым путём lc() ничего сразу не получится. Вот как следует преобразовывать в нижний регистр строку с Юникод-терминала:

#!/usr/bin/perl -w
use strict;
use Encode;
chomp(my $input = <STDIN>);
my $string = decode("UTF-8",$input);
$string = lc($string);
print encode("UTF-8",$string);

Я был удивлён,что совершенно не требуется прагма use locale. Наоборот, при её использовании всё только ухудшается.Также существуют функции decode_utf8 и encode_utf8, которые принимают только один параметр; работают аналогично.Юникод - двухбайтовая кодировка, и требует подобного обращения при любом использовании. В конце хочу добавить,что замечание интерпретатора "Wide character in print at ..." сигнализирует о том,что вы забыли закодировать строку обратно в UTF-8, и выводите её на экран во внутренней кодировке (попробуйте заменить последнюю строку на обычный print $string).

Постоянные читатели

Архив