Умом Россию не понять :)

Вот фото, сделанное в одном из магазинов (не побоюсь произнести название этого магазина — «Пятёрочка»)  г. Екатеринбурга.

Называется: «Попробуй найди свой номер»

Спасибо за фото Светлане, постоянной читательнице моего блога 😉

Второе фото, от Светланы, называется — «Объявление для невысоких» :

И завершающее фото от Светланы, опять же, из жизни, которая рядом — «Намазали асфальт» :

Почему они называются I18N и L10n?

Ух, давно не писал я в свой блог. Решил немного встряхнуть его этим мелким постом 😉

Итак, в мире программирования есть такие два понятия — I18N и L10N. Это абревиатуры Internationalization и Localization соотвественно. Но что за цифры в них? Я очень долго не знал ответа на этот вопрос и он меня иногда пугал. Я даже как то думал, что по началу интернационализация в Unix была сделана для 18-ти языков, и от туда название…

Но оказалось всё ещё проще. Чтобы не писать Internationalization, решили сократить — оставили первую и последнюю буквы, а цифры соответствуют количеству букв между ними, которые убрали из-за сокращения. То же и Localization — между ‘L’ и ‘N’ идёт 10 букв. Вот так всё оказывается просто получилось…

Мобильник с камерой … 41 Мпиксель

Кажется неворятным, но вот вот судя по сделанным фоткам — всё это реальность…

Судите сами — MWC 2012: Nokia 808 PureView — смартфон с камерой разрешением 41 Мп

Примеры фотографий даны внизу статьи. Меня это впечатлило 🙂 Правда, не совсем понятно, зачем такое нужно телефону (разве что подтянуть продажи ОС Symbian), ну да ладно

Карта самолётов в небе (онлайн)

Узнал про такой сайт: www.flightradar24.com. На нём можно посмотреть, какие самолёты сейчас в небе, посмотреть всю полную информацию о рейсе. Очень познавательно и интересно 🙂

P.S. Открывать в броузере не в более, чем в одном окне или табе — отображается только в одном окне.

Perl: DBI & MySQL — авто реконнект (reconnect)

Если вы программист на Perl и работаете с MySQL, то вот вам совет, как обеспечить коннект к серверу, и в тоже время, обеспечить себе легкую жизнь. Ведь если истечёт таймаут при работе с сервером, $dbh (database handle) будет не актуальным и выдаст ошибку. Особенно это актуально тогда, когда ваша программа работает с MySQL, и в то же время выполняет другие длительные операции, время которых может превысить таймаут-значение (connect timeout) MySQL. В такой ситуации ваш handle будет не актуальным.

Решение есть. Но в то же время есть ещё одна тонкость. DBB::mysql драйвер имеет опцию автореконнекта (mysql_auto_reconnect) и будет следить за актальностью handle и при случае переконнектится. Но вот что делать с коммандами, которые иногда надо выполнить сразу после коннекта, например SET NAMES ‘utf8’;SET CHARACTER SET ‘utf8’ ? И тут есть решение! Хотя найти его не всегда легко в интернет 🙂

Вообщем, вот код для коннекта из под Perl к MySQL так, чтобы всё работало пучком:

$dbh = DBI->connect( "dbi:mysql:database=database_name;mysql_client_found_rows=1;mysql_enable_utf8=1;mysql_socket=/socket_of_mysql", 'user', 'password',
    {
	RaiseError		=> 1,
	AutoCommit		=> 1,
	mysql_multi_statements	=> 1,
	mysql_init_command	=> q{SET NAMES 'utf8';SET CHARACTER SET 'utf8'}
    } ) or die "Cannot connect";
$dbh->{mysql_auto_reconnect} = 1;

Код проверен мною и тщательно протестирован