Showing posts with label я. Show all posts
Showing posts with label я. Show all posts

Thursday, September 13, 2012

Как я провел...

Удивительно, что мое неожиданное путешествие многих заинтересовало (кто вообще придумал про гугл?!). В том смысле, что почти все спросили, что да как, когда и где. Очень приятно, что есть люди, которые мной интересуются (очень приятно, черт возьми!). А потому, вот вам пост добра и ответов.

Был я в столице, в Москве. Папа сменил машину, вот ее-то и забирали из салона. Приехали рано, но заранее договорились зайти к родственнику. Удивительный дядька, много и интересно рассказывающий о городе, о себе и своей прошлой работе, о нынешних делах. Слушать его крайне приятно. Увлекается фотографией, замечает просто потрясающие детали! Отменное чувство юмора. Безумно рад, что познакомился с ним и его семьей. Вот тут есть его работы (сайт не очень удобен...). Одну позволю показать прямо здесь:

Машинку оформили и отправились домой. Выезжать из Москвы долго и тяжело, вести новую красавицу доверили мне (!). Не подвел - ехал аккуратно и через несколько часов выехали на более или менее оперативные просторы, средняя скорость подросла с 31 до 47 км/ч (то до 120 разгонимся, то тащимся 20 + населенные пункты). Примерно после 350 км поменялись, руль достался хозяину. Около 23 часов проезжали мимо НН (ага, был совсем рядом) и свернули в солнечный Саранск. Вся дорога заняла ~10 часов.

Про авто: Mazda CX-5. Восхищению моему есть предел, но динамичный, легкий ход, мягкая подвеска, скрывающая неровности дорог, существенно отодвинули планку. Руль отдавать не хотелось совершенно. Машина с нулевым пробегом шла как хорошо обкатанная. Сравнивая с Honda CRV 1998, отличающейся потрясающим движком и великолепной коробкой-автоматом, - мазда выше всяких похвал. Нет проигрыша в динамике, огромный плюс в комфорте и функциональности. Акустика так вообще крышу снесла :) В следующий раз обязательно загляну под декоративные решетки - надо же узнать, что так звучит. Есть огромное количество опций и фич, из которых я и половины не знаю. По дороге машина напоминала нам, что неплохо бы залить омывающую жидкость и предупредила о возможном обледенении дороги (+4 и мы попали в туман).

Красивая, умная, много умеет - чего еще желать? Ой, о чем это я...

PS за прошедшие выходные + пн и вт проехал более 2000 км. Из них половину как водитель. Утомился, пойду уже спать...

Wednesday, September 12, 2012

... заиграет музыка

Edifier C200 несколько превзошли мои ожидания. Они большие! Нет, правда. Представлял их себе иначе. Хороший размер, как сказал парень, выдавший коробку.
Коробка (справа) в сравнении со стулом (слева).
На ультрабуке мало музыки. Ну очень мало. Песни с концерта Queen от 3 июля (в оригинальном исполнении, конечно), альбом J. Coulton'а с последней раздачи Humble Music Bundle и... все. Но я точно знал, что буду слушать в первую очередь: '39.
Рапсодия была второй, но при прослушивании хотелось визжать от восторга! Стоп. Визжать? Нет, я серьезный человек. Безмерно ликовать и радоваться? Подходит... для лемура. Не описать мне то состояние (вероятно, дело не только в колонках).
Как-то так теперь все и выглядит
Слух у меня так себе. И это еще я себя похвалил. Музыку выбираю так: нравится - слушаю, не нравится - не слушаю. Любимой группы просто нет, есть песни, которые нравятся. Направления в музыке не различаю, названия песен и групп не запоминаю. Альбомы могу слушать на шаффле. Могу перемешивать альбомы и исполнителей.
Из последних могу отметить только Rise Against - слушаю очень часто. Этому даже есть объяснение - от них легко отвлечься и уйти в работу. И приятно потом возвращаться. Когда меня спросили про наиболее зацепивший альбом, сказал, что такого нет. Это правда лишь от части: их на самом деле два (последних). Они постоянно есть в плейлисте. Но не уверен, что это именно то "зацепил", которое имелось ввиду.

Перед прочтением, закрыть текущую страницу в браузере.
Теперь у меня есть звуки, музыку слышно во всей квартире, можно пойти спать и оставить ее включенной, можно сделать тише или громче (пультик в комплекте), можно поставть на mute, можно... Нельзя только оставлять играющий плейлист с выключенным звуком на долго - музыка для того, чтобы ее слушали. Лучше нажать паузу, стоп, разбить плеер, колонки, но только не оставлять музыку без слушателя.

Wednesday, July 25, 2012

Без названия #1

Мне вдруг сегодня вспомнился один занятный случай из далекого прошлого. Дело было в летнем лагере, мне лет 13. В один из последних дней нам устроили глобальный тимбилдинг, как ныне говорят: всем выдали пачку порезанных ниток и пустые бусы с меленьким навесным замочком и парой ключиков. Один ключ, понятное дело, себе, другой - самому близкому человеку в лагере. А вот ниточки на бусы можно было повязывать кому угодно, только при этом надо было объяснить, с чего вдруг такая вольность в поведении. В тот день я чем-то отравился и довольно долго отлеживался в палате. В итоге бусы к концу дня бусы у меня пустые, ключа два, да еще и пучок ниток. Ну я и пошел всем доказывать, как они мне дороги и как я всем благодарен (сарказма нет, с ребятами из своего отряда я очень подружился). Подхожу к девушке, спрашиваю: "Где, мол, твои бусы?". А она как-то так обрадовалась, удивилась: "Ты хочешь мне повязать?!". Ниточку я успешно отдал, и даже взамен получил, кажется. А сейчас вот вспомнил тот случай и задумался: да что ж в этом было такого? Мы примерно 10 дней целыми сутками все вместе были, сплачивались по полной, а ниточку повязать - это уже слишком? Да я ж там всех любил примерно одинаково, мне это в радость было - дарить ниточки и теплые слова. Вывод тут какой: мы, люди, часто уделяем слишком много внимания совершенно незначительным вещам. А значительность определяем для себя сами.

Что-то затянулось вступление, я ж про другое хотел рассказать. Вот есть в мире масса языков программирования, многие из них очень широко распространены, некоторые я знаю. Больше всего мне приходится писать на Perl'е. Это восхитительно ужасный язык программирования. Столько всего можно сделать в одну строчку и получить от этого такой гиковский кайф, что захочется продолжать и продолжать. Но вот через неделю этот код проще переписать, чем прочитать...
Но если уж писать на перле, то извольте освоить сложные конструкции типа хэша хэшей хэшей. Вот о них и хочу рассказать.
Есть у нас хэш:
my %hash = (
    'first'  => 1,
    'second' => [1..10],
    'third'  => 'string here'
);
Второй элемент есть не что иное как ссылка на массив, т.е. общая структура чуть сложнее самой простой. Напишем простенькую функцию для распечатки такой структуры:
sub print_my_hash($) {
    my $ref = shift;
    map {
        if (ref($ref->{$_}) eq 'ARRAY') {
            print join(', ', @{$ref->{$_}}), "\n";
        } else {
            print $ref->{$_}, "\n";
        }
    } keys %{$ref};
    print "\n";
}
Если обнаруживаем ссылку на массив - обрабатываем отдельно. При распечатке получим вот это:







Пока делал скрин и, не побоюсь этого слова, обрезал его, чуть с ума не сошел: в убунте сначала пришлось найти приложение, которое бы могло это сделать, а потом убедить его работать так, как мне надо, а не так, как создатель пожелал. Уфф, не отвлекаюсь.

Вернемся к коду: все распечаталось как мы ожидали (я-то точно). Теперь скопируем наш хэш в другой:
my %copy = %hash;
Было не сложно, правда? Распечатаем и его:








Ура, отличий нет, копирование прошло успешно.
Теперь возьмем и поменям какой-нибудь элемент массива в новом хэше и распечатаем его:
$copy{'second'}->[4] = 100500;
print_my_hash(\%copy);




Все опять именно так, как ожидалось.

Внимание, сейчас будет развязка. Приготовились? Точно? Уверены? Вопросы уже достали? Ок, заканчиваю издеваться над теми, кто правдами или неправдами дочитал до этого момента: что находится в пятом элементе (индекс = 4) массива в первом хэше?
Вопрос выглядит совершенно по-идиотски, если вы пишете/писали на C. Он даже для опытных перлописцев слишком прост. Но прежде чем назвать меня профнепригодным представьте себе конструкцию из хэша с десятком полей, значениями которого могут быть и скаляры (в перле это и строки и числа), и хэши, и ссылки на массивы и хэши. Скажете, можно без этого? Наверно, но это же перл, это нормально. Правильный ответ, кстати, 100500.

К чему я это? Извольте: все современные фреймверки и языки программирования сильно абстрагируют обычного программиста (меня) от реально происходящих в машине событий. Ничто не заменит мяса в колбасе базовых знаний ОС, структур данных и умения работать с памятью.

Полный код и постскриптумы:
#!/usr/bin/perl

use strict;
use warnings;

sub print_my_hash($) {
    my $ref = shift;
    map {
        if (ref($ref->{$_}) eq 'ARRAY') {
            print join(', ', @{$ref->{$_}}), "\n";
        } else {
            print $ref->{$_}, "\n";
        }
    } keys %{$ref};
    print "\n";
}

my %hash = (
    'first'  => 1,
    'second' => [1..10],
    'third'  => 'string here'
);
print_my_hash(\%hash);

my %copy = %hash;
print_my_hash(\%copy);

$copy{'second'}->[4] = 100500;
print_my_hash(\%copy);

print_my_hash(\%hash);

PS: зачем я объединил два разных поста в один? Не знаю, само собой.
PPS: с описанным примером сталкивался в реальной работе дважды или трижды. Всегда все было не так очевидно, как в описанном здесь примере, и связано было, в основном, с перлофичами.
PPPS: код подсвечен с помощью этого: http://tohtml.com, а написан с помощью Sublim'а
PPPPS: убунта неприятно удивила, но в венду не перезагружусь
PPPPPS: в блогспоте мне не нравится - неудобно писать свои мысли, настраивать форматирование и пр.