Thursday, February 28, 2008

DBD::mysql character set

порывшись некоторое время в документации mysql, я понял, что гарантированно выставить кодироку клиента, а именно character_set_client, character_set_results, character_set_connection в какую-то кодировку можно только с помощью «set names utf8». потому как не всегда есть возможность сменить кодировку в конфигурации сервера. теперь о том, если нет возможности использовать «set names».

оказывается, DBD::mysql позволяет использовать некоторые дополнительные переменные при соединении, как то mysql_read_default_group и mysql_read_default_file. как это может помочь мне для установки кодировки данных для клиента:

dbitest.pl:


#!/usr/bin/perl

use strict;
use DBI;

print `mysql -e 'show variables' | grep char`;
print "\n";

my $conn_str = join ';',
'DBI:mysql:database=mysql',
'mysql_read_default_group=perl',
'mysql_read_default_file=/home/apla/my.cnf';

my $d = DBI->connect($conn_str, "***", "***");
my $s = $d->prepare ('show variables like "char%"');
$s->execute;
my $vars = $s->fetchall_arrayref;

foreach (@$vars) {
print "$_->[0] => $_->[1]\n";
}


my.cnf

[perl]
default-character-set=cp1251


соответственно, group это то, что находится внутри квадратных скобок, то есть [group], а file - это если вы не хотите использовать стандартную конфигурацию, то можете использовать свою собственную.

результат:


perl dbitest.pl
character_set_client latin1
character_set_connection latin1
character_set_database latin1
character_set_filesystem binary
character_set_results latin1
character_set_server latin1
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/

character_set_client => cp1251
character_set_connection => cp1251
character_set_database => latin1
character_set_filesystem => binary
character_set_results => cp1251
character_set_server => latin1
character_set_system => utf8
character_sets_dir => /usr/share/mysql/charsets/


mysql 5.0.26

Monday, February 25, 2008

good, bad and ugly

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

abn.ru



месяц назад я решил купить себе переключатель монитор/клавиатура/мышь, потому как компьютеров в доме становится больше, а покупать на каждый из них монитор - расточительно и бессмысленно. особенно на тот, который стоит на антресоли. в силу того, что цена на подобные устройства с нужными мне характеристиками (dvi, usb, 4 компьютера) отличаются в разы, то решил попробовать самый дешевый - ведь если будет работать, то какая мне разница, сколько он стоил. поехал в abn.ru. сама фирма занимается сетями, кабелем и всем, что с этим связано. офис сответствующий:







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

sunrise.ru



моя жена работает в том же здании, где находится магазин sunrise. несколько раз, когда я ее провожал, мне было удобно заказать пару железяк поутру и, получив их, поехать на работу. удачно закупился я там всего один раз. вообще, пожалуй, стоит немножко детально рассказать о самом магазине. санрайз - огромный склад. и люди, которые им управляют, наверное, никогда не видели, как санрайз работает с покупателями. купить в санрайзе можно тремя способами: собственно, приехав на склад, через ряд киосков с терминалами, где можно сделать заказ, оплатить его и приехать через несколько дней за покупкой (санрайз-лайт) и online-shop санрайза.

все эти три способа заказа между друг другом не связаны. и если санрайз-лайт отделен от склада по понятным причинам, то совершенно непонятно, почему нельзя сделать резерв в онлайн магазине, а потом забрать его в санрайз лайт или на складе. такой возможности просто нет. ха, а в ultra-online.ru, fcenter.ru, oldi.ru все это есть! так нафиг нам сдался санрайз? особенно с учетом того, что если хочется купить что-то, что появляется в продаже не очень часто, и после появления находится недолго, то вероятность купить это в санрайзе близка к нулю.

в результате получается такая ситуация - либо ты должен приехать в санрайз-лайт, заказать, оплатить и ждать пару дней, пока все доедет (если доедет - тот, кто принимает заказ, тоже не может зарезервировать товар; в некоторых случаях звучит волшебная фраза «эту позицию заказать нельзя, потому как тут всего две штуки осталось»). либо нужно приехать на склад, зарезервировать (теперь новые условия - не меньше 1000 рублей в заказе), оплатить, и через час-три ожидания получить вожделенную железку. либо заказать через интернет магазин, из которого придет пеший ходок через три-четыре дня и оплатить сверх стоимости заказа 400 рублей за доставку (это больше примерно раза в два, чем в других компьютерных магазинах).

если честно, то санрайз мне представляется удобным только в том случае, если есть карта постоянного покупателя со скидкой, там есть что-то очень нужное, ты любишь ездить за покупками по ночной москве или работаешь в том же здании.

ultra-online.ru



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

Sunday, February 24, 2008

traveler laser: part II

в целом, как оказалось, мышь вполне приличная, и вполне прилично слизана с apple mighty mouse. но не без неприятностей:

1. верхняя часть не разбита на кнопки, поэтому часто при нажатии нажимаются обе кнопки, одна за другой.
2.1. скролл работает горизонтально и вертикально, но по диагонали - не работает. горизонтальному скроллу для работу нужна mac os x 10.5.2 или драйвера под windows.
2.2. скролл в силу его оптической сущности не имеет тактического отклика. кроме того, палец не скользит по прозрачному пластику скролла, поэтому при прокрутке на несколько строк палец тормозит, при быстром же движении помех нет. результат - промотать на половину страницы не удается - либо на пару строк, либо на пару страниц. привыкаешь, но неудобно. так и не смог привыкнуть за две недели 
2.3. светодиод в скролле разместили неудачно, в некоторых положениях он светит рямо в глаза. несильно, но неприятно. если бы он светил от пользователя, нареканий не было бы.
3. мышка обладает оптическим разрешением в 1600 dpi. это значит, что я за ней не успеваю. есть режим 800 dpi, включаемый долгим нажатием на кнопку с сенсором скролла, но режим не сохраняется между перезагрузками. 
4. неудачный, чрезвычайно тонкий кабель. при моей аккуратности такие кабеля рвутся «на раз». поменял со старым genius netscroll, теперь вроде оторвать будет сложно.
5. драйвера в windows ставятся в папку c:\Genius и нет возможности выбрать другую папку. к счастью, не все производители так делают, потому как иначе было бы пользоваться диском c: невзможно.

сравнивать traveler laser с mighty mouse глупо - это две похожие мышки, но похожи они лишь внешне. стоимость mighty mouse вполне компенсируется удобством пользования; в то же время, . genius traveler laser - дешевая имитация с прикольным оптическим скроллом, которым неудобно пользоваться. если на скроллинг наплевать (я на работе использую apple wireless mouse), то мышь вполне комфортная.

поэтому genius следут сделать несколько простых вещей для того, чтобы мышью было бы пользоваться удобно:
1. разделить кнопки
2. переместить светодиод оптического скролла от пользователя
3. сделать пластик на скролле другим, так чтобы движению пальца не было помех
4. сделать переключатель dpi на дне мыши
5. заменить провод на менее хлипкий
6. доделать софт