четверг, 31 января 2008 г.

Голос из Америки


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

Перелет
Как ни странно, 11 часов в самолете прошли довольно быстро. Интересно было наблюлать на экране карту Земли, маршрут самолета и точку, в которой мы летели, сравнивая с тем, что видно в окно. Оказывается, самолет летит не прямо через Европу и океан, а по дуге, максимально приближенной к суше, через Исландию и Гренландию и даже кусок Канады. Побережье Исландии выглядело просто потрясающе - горы, снег, море и как-будто ничего живого.

Первые впечатления
:


  • Америка – реально многонациональная страна. Кого тут только нет и все тут все тут чувствуют себя уверенно как дома. Вчера был забавный миниг: китаянка, негритянка, индус, индуска и украинец.
  • Здесь дороги такие же хреновые как и у нас. Я имею ввиду не то, как эти дороги расположены (это отдельная тема), а качество покрытия – чтонияматоканава.
  • При знакомстве женцины здороваются за руку. Для меня это неожиданно.
  • Ни для кого не тайна, что “культура употребления” кофе у американцев отличается даже от нашей. Но я не ожидал, что на столько. Они его не пьют, а хлебают из стаканов размером с пивные кружки, причем через трубочку.
  • Без машины тут тяжело, в поселке (Piscataway, NJ), в котором находится гостиница, даже не предусмотрены тротуары и пешеходные переходы. Магазин и офис находятся примернов в миле, но туда без машины просто не попасть.
  • Все побережье заселено так плотно, что нету промежутков между городами.
  • Американская еда вполе съедобна и разнообразна. Гамбургеры и пицца – не единственно, что они тут едят.
  • Толстых тут заметно больше чем у нас, но не настолько, что бы говорить, что американцы все жирные.
  • Оказывается можно пользоваться клавиатурой без русской раскладки.

Первый вывод
Америка – страна пригодная для жизни. Но сразу и не скажеш, что здесь лучше чем у нас. Для меня здесь пока все не так.

Read More...

пятница, 18 января 2008 г.

Hello, America!

До поездки осталось 2 дня. Уже получены билеты, страховка, известны все номера, явки и агенты :) Уже в очередной раз пожалел, что вовремя не сдал на права. По слухам, там даже еды без машины не купишь. Вообще интересно проверить, правду ли говорит Задорнов :)

Сейчас смотрю, нормы провоза багажа в рейсах, там есть раздел по поводу использования электроники в самолете. Есть устройства которыми нельзя пользоваться, иногда можно пользоваться и устройства, которыми можно пользоваться всегда. Так вот, в небольшом списке последних есть электробритвы. Забавно, самолет набирает высоту, а я сижу бреюсь :)

Read More...

True Indians

Вчера нашел странный код, не то, что бы он не работающий, просто реально странный:

Похоже, что индийские коллеги, предварительно помедитировав, решили убить двух зайцев одним указателем. Если объект Xcon существует или существовал, но был по каким-то причинам удален, то выполняется блок 1, в противном случае, выполняется блок 2. И все это рулится значением указателя. А я, как не достигший просветления путем медитации, потенциально мог бы удовлетвориться проверкой if(db) для дальнейшего использования db... Я еще удивлялся, почему они так боятся смартпоинтеров.

Read More...

четверг, 17 января 2008 г.

Сын человеческий


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

В Кракове мне очень советовали посетить музей, в котором храниться Дама с горностаем Леонардо да Винчи. Я не посетил. И совсем об этом не жалею. Как по мне, фотография в журнале тоже не плохо смотрится.

Тоже самое и Третьяковская галерея в Москве. Я пол часа побродил с фотоаппаратом вокруг нее и мне этого было достаточно. Меня не радовала перспектива ходить часами из зала в зал с умным лицом только ради того, что бы приехав домой сказать: "Прикиньте, я был в Третьяковской галерее".

Я пытался себя заставить изменить такой "некультурный" подход - ходил в пару картинных галерей в Киеве. Больше 15 минут я там не выдерживал. Не потому что неинтересно. Я был не настолько поглощен увиденным, что бы не замечать снующих рядом "ценителей", на фоне которых, я, с умной маской на лице, чувствовал себя не в своей тарелке. Это первая причина. Вторая причина еще проще - я не мог понять, чем то, что продается на улице в качестве сувениров хуже того, что я вижу и почему то, что я вижу заслуживает большего внимания. Вот такой я вот некультурный.

Хотя я немного наврал. Был один случай, когда меня действительно очень увлекли картины. Это было в московском музее востока. Выставка картин Николая Рериха. А увлекли они меня так потому, что я как раз закончил читать его книгу "Алтай-Гималаи". Рерих был интересен мне не как художник, а как путешественник. А попав случайно на выставку его картин, да еще и находясь под впечатлением от его книги, я просто не мог не любоваться его творчеством. Смотря на картину, я представлял где и в каких условиях он это рисовал и как это может выглядеть в реальности.

Это было только вступление. Написать я хотел не об этом (поэтому ограничусь только картинами, без разглагольствований о поэзии :) ).

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

А так как картины, не относятся к моим увлечениям. Я сразу же выпалил когда-то давно услышанной фразой: "Художник рисует картины, а зрители наделяют их смыслом" (Не то, что бы я верю в это, но просто люблю спорить, занимая крайние позиции). И еще: "Сколько людей, столько и мнений". Последнее напомнило мне о фразе: "Десять программистов решат одну и туже задачу десятью разными способами". И дальше понеслась полная бредятина... :)

Художник рисует картину для людей и для себя. "Для себя" - как самовыражение, самореализация, применение своих творческих способностей, выполнение высшей миссии и т.д. "Для людей" - что бы "пользовались". Пользоваться можно двояко. Во-первых, как конечный пользователь - повесить на стенку (в рамку, дверь, рабочий стол, аватор и т.д.) и любоваться. Во-вторых, можно использовать картину как разработчик - когда картина является частью какого-то созидательного действия (рисовать копии, спорить о смысле нарисованного, устраивать выставки и тому подобное).

Получается, что в первом случае, картина - это конечное приложение. Во втором случае - библиотека (динамическая или статическая). При пересечении случаев использования, картина - это "встраиваемое" приложение, когда можно использовать его в целом или как сервис из других приложений (как, например, MS Word).

Что из этого получается? Художник пишет картину - программист пишет код. Пользователи не наделяют код смыслом - это прерогатива разработчика. Точно так же, пользователи картины не могут наделять ее смыслом, особенно если это конечные пользователи. Даже если картина предоставляет свои сервисы для другого созидательного проекта (так то написание сочинения "Что я вижу на картине" в школе), не меняется логика ее работы, так как для этого, картину нужно переписать заново.

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

Read More...

среда, 16 января 2008 г.

YaST и внешние репозитории

Долгое время мучался с YaST'ом в openSUSE 10.2 - он на отрез отказывался поключать внешние репозитории. Как бывает довольно часто, причина проблемы оказалась проста - по умолчанию при соединении с прокси-сервером использовался порт 1080 вместо 3128. Все прекрасно заработало после добавления в YaST->Network Services->Proxy такой строки: http://proxy.server.com:3128.

Read More...

вторник, 15 января 2008 г.

От имени root без пароля

Пришло время разобраться с sudo. Мне стало лень вводить рутовый пароль каждый раз, когда нужно запустить что-нибудь от его имени (например, sudo make install). Конфиги для sudo лежат в файле /etc/sudoers. Открыть для редактирования его можно двумя способами:

Второй метод удобнее тем, что не нужно знать где лежит сам конфиг. В файле раскоментируем строку:

После этого нужно добавить себя в wheel

И в завершеении, запрещаем "ненужным" пользователям выполнять sudo, для чего закоментируем следующие строки:

Самое главное - последовательность выполения, если сначала закоментировать строки, указанные в конце, можно получить неприятность, в виде запрещения редактированя sudoers и group для не рута. И при редактировании sudoers лучше не оставлять пробелов в начале строки, чтобы избежать неприятных сообщений в ответ на использование sudo:

Read More...

понедельник, 14 января 2008 г.

Переключение раскладки в Linux

Постепенно осваиваю и настраиваю linux. Наконец-то меня в край достало перключение раскладки комбинацией ctrl+alt. Полазил по настройкам - не нашел простого способа переключения, есть нейкий Keyboard Layout, но он задизейблен. Должна же где-то быть прописанна существующая комбинация. Нашел ее в xorg.conf в секции InputDevice: "grp:alt_shift_toggle". Изменил на "grp:ctrl_shift_toggle" и все стало на свои места. Если нужна более гибкая настройка, то можно почитать статью: Способы переключения раскладок клавиатуры в KDE (3в1).

Read More...

пятница, 11 января 2008 г.

Фолдинг в vim

Не всегда удобно работать с цельным текстом (особенно если это какой-нибудь xml). Иногда удобно "свернуть" некоторые подробности текста (например, тело функции или цикл), что бы остальное смотрелось нагляднее. Как и у многих IDE, такая фича есть в vim'е. Называется она фолдинг (folding) и выглядит примерно так:

Для настройки фолдинга нужно как минимум разрешить его и указать метод определения границ сворачиваемого текста.

Метод indent означает, что границы будут определяться автоматически. Помимо этого метода есть еще:

  • manual - фолдинг выполняется только командами с явным указанием блоков текста;
  • expr - блоки разбиваются в зависимости от значения параметра foldexpr;
  • syntax - для определения блоков используется Syntax highlighting;
  • diff - работает только когда включена опция diff и автоматически определяет блоки, которые не изменялись;
  • marker - блоки вычисляются по существующим маркерам.

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

Когда блок свернут, возле плюса выводиться текст, значение которого задается параметром FOLDTEXT:

Параметр FOLDLEVEL позволяет автоматически сворачивать блоки на различных уровнях вложенности. Если этот параметр равен 0, то по умолчанию все блоки будут свернуты, если 1 - то будут свернуты все уровни кроме самого верхнего и т.д.

Осталось рассмотреть основные команды:
  • zo - открыть фолдер;
  • zO - открыть фолд рекурсивно;
  • zc - закрыть фолд;
  • zC - закрыть фолд рекурсивно;
  • za - если фолд открыт - закрыть, и наобород;
  • zA - то же, что и za, только рекурсивно;
  • zr - уменьшить уровень закрытых фолдов (FOLDLEVEL+=1);
  • zR - открыть все фолды;
  • zm - увеличить уровень закрытых фолдов (FOLDLEVEL-=1)
  • zM - закрыть все фолды.

Более подробное описание пожно получить у самого вима:

Read More...

Шпаргалка по vim

Vim documentation: quickref - список комманд и опций vim с кратким описанием.

Read More...

четверг, 10 января 2008 г.

Настройка command prompt

Я нахожу не удобным то, что по в командной строке надо лишний раз писать pwd, что бы понять, где ты находишся. Намного более удобно, когда местонахожение указанно в приглашении (в тоже время, когда путь слишком длинный - это перестает быть удобным). Для настройки вида command prompt существуют shell-переменные PS1, PS2, PS3, PS4.

Самая полезная из них - первая, все остальные расширяют возможности первой. По умолчанию PS1='$(ppwd \l)\u@\h:\w>' (это в моем линаксе; хотя в мануале написанно PS1='\s-\v\$'), расшифровывается примерно так: имя_юзеря@имя_хоста:текущая_директория. Выглядит это так: Oleksandr.Lysenko@olysenko-pc:~ - не очень удобно. В мануале можно посмотреть, какие же еще значениями можно описать PS1:

  • \a an ASCII bell character (07)
  • \d the date in "Weekday Month Date" format (e.g., "Tue May 26")
  • \D{format} the format is passed to strftime(3) and the result is inserted into the prompt string; an empty format results in a locale-specific time representation. The braces are required
  • \e an ASCII escape character (033)
  • \h the hostname up to the first `.'
  • \H the hostname
  • \j the number of jobs currently managed by the shell
  • \l the basename of the shell's terminal device name
  • \n newline
  • \r carriage return
  • \s the name of the shell, the basename of $0 (the portion following the final slash)
  • \t the current time in 24-hour HH:MM:SS format
  • \T the current time in 12-hour HH:MM:SS format
  • \@ the current time in 12-hour am/pm format
  • \A the current time in 24-hour HH:MM format
  • \u the username of the current user
  • \v the version of bash (e.g., 2.00)
  • \V the release of bash, version + patch level (e.g., 2.00.0)
  • \w the current working directory, with $HOME abbreviated with a tilde
  • \W the basename of the current working directory, with $HOME abbreviated with a tilde
  • \! the history number of this command
  • \# the command number of this command
  • \$ if the effective UID is 0, a #, otherwise a $
  • \nnn the character corresponding to the octal number nnn
  • \\ a backslash
  • \[ begin a sequence of non-printing characters, which could be used to embed a terminal control sequence into the prompt
  • \] end a sequence of non-printing characters

Можно использовать значения переменных окружения, например PWD. Тогда самы простой и удобный вариант (для меня), будет PS1='[\t] $PWD> '.

В PS1 можно так же изменить заголовок xterm, для этого нужно изменить значение переменной следующим образом: PS1='[\t] $PWD> \e]2;${PWD}\a'.

Read More...

вторник, 8 января 2008 г.

Яблокофильмы

В последнее время стал обращать внимание на обилие рекламы Apple в фильмах. Вчера смотрел "Сокровища нации" - любой компьютер, попадающий в кадр, непременно серебрился Apple-яблоком. Один из героев, при помощи iPod'a и ноутбука Apple подключался к системе безопасности Бекингемского дворца. Тоже самое было в "Я легенде". Неплохое место для нашли эпловские рекламщики, главное, что бы другие компании поменьше следовали их примеру...

Read More...

четверг, 3 января 2008 г.

Как звучит URI

URI(Uniform Resource Identifier) на английский манер произносится как [ю-ар-а́й]

Read More...