Archive for December, 2009

book review#2: Вы, конечно, шутите, мистер Фейнман!

«Беда с компьютерами состоит в том, что ты с ними играешь. Они так прекрасны, столько возможностей — если четное число, делаешь это, если нечетное, делаешь то, и очень скоро на одной-единственной машине можно делать все более и более изощренные вещи, если только ты достаточно умён.
[…]
Но если вы когда-нибудь работали с комрьютерами, вы понимаете, что это за болезнь — восхищение от возможности увидеть, как много можно сделать.» — Р. Ф. Фейнман

О том, что Фейнмана стоит почитать, я знал давно. Когда был школьником и увлекался физикой, мне советовали его лекции по физике. Позже неоднократно попадались упоминания его книг. Но в те времена я не представлял себе, где их можно купить. Почему-то это казалось нереально сложным. Уж не знаю, почему.

И вот совершенно недавно, просматривая своих соседей в библе, натыкаюсь на «Вы, конечно, шутите…». Пройти мимо было бы преступлением :)

Не смотря на то, что успел прочитать только полкниги уже спешу поделиться впечатлениями. А впечатления — супер. Очень познавательно, море интересных фактов, историй, юмора. Период «Манхэттенского проекта» пока что самый интересный.

И ещё одна цитата для подогрева интереса :)

«А [Джон] фон Нейман, подал мне интересную идею: вовсе не обязательно быть ответственным за тот мир, в котором живешь. В результате совета фон Неймана я развил очень мощное чувство социальной безответственности. Это сделало меня счастливым человеком с тех пор. Именно фон Нейман посеял зерна, которые выросли в мою активную позицию безответственности!» — Р. Ф. Фейнман

Bluetile.deb

В прошлый раз я посетовал, на то что у Bluetile нету .deb пакета, что несколько усложняет его установку. После некоторых раздумий было принято решение сделать такой пакет самому, ведь это должно быть совсем не сложно. На удивление, пакет собрался довольно быстро.

Если быть откровенным, то у меня есть подозрения, что пакет получился не совсем «кошерным». Т.к. он вроде и бинарный, но попутно скачивает и собирает софт из исходников. Но как сделать лучше я пока что не знаю, так что с радостью выслушаю дельные советы :)

Пакет чрезвычайно прост:

  • control — файл, с описанием зависимостей (компилятор Хаскеля и библиотеки).
  • postinst — скрипт, который скачивает, собирает и установливает cabal и bluetile в $HOME/.cabal/
  • prerm — удаляет симлинки при удалении пакета.
  • Для удобства добавил так же bluetile.desktop — ярлык в главном меню(Applications → Accessories → Bluetile) с иконкой от Xmonad.

Скачать пакет можно тут → bluetile_0.3.deb. Пакет проверялся на Ubuntu 9.10.

Исходники — http://hg.zayats.org.ua/bluetile-deb/

P.S.Кстати, для организации тестовой площадки очень помог проект «VirtualBox® Images». Проект предоставляет готовые к употреблению виртуальные машины с различными предустановлеными ОС.

Bluetile — Xmonad для простых смертных

Image Идея организации окон мозаичным способом мне приглянулась сразу, как только я узнал о Xmonad. Слишком уж часто я замечал, что много энергии и внимания расходуется на манипуляцию окнами: сворачивание/разворачивание, частые переключения между двумя-тремя окнами для синхронизации информации между ними, долгая «мышиная возня» для того, чтоб разместить несколько окон рядом, и т. п. Мозаичный же подход предлагает автоматическое и более оптимальное размещение окон.

К сожалению у Xmonad слишком высокий порог вхождения для новичков.

  • Во-первых, смена парадигмы окружения рабочего стола сама по себе сложна и требует времени на адаптацию. Запустив Xmonad я себя чувствовал одновременно потеряным и беспомощным — все мои навыки не работали в новой среде. Почти так же я себя почувствовал как при первом знакомстве с Enlightment 8 лет назад, но там хоть были клёвые выдвигающиеся панельки.

  • Во-вторых, сложный процесс конфигурации. Конфиг нужно писать на Хаскеле. Конечно, это даёт широчайшие возможности по затачиванию среды под свои нужды. Да, хорошему программисту рекомендуется в год изучать хотя бы один новый язык. А Haskell — это, возможно, наше светлое функциональное будущее. Но когда нужно решать сугубо «бытовые» проблемы вроде подстройки клавиатурных сочетаний, неизвестный язык становится серьёзной преградой для внедрения новых инструментов. К тому же, после правки конфига, Xmonad нужно было по-новой компилировать.

Bluetile

bluetile screenshot

К счастью, нашёлся добрый человек, — Jan Vornberger, — который захотел исправить ситуацию и сделать Xmonad более доступным для простых смертных. Итогом его работы стал Bluetile 1.

Главная задача, которую ставил перед собой Jan — создать мозаичный оконный менеджер, которым можно эффективно пользоваться с нулевой предварительной подготовкой. Добился он этого оставив привычные элементы управления вроде titlebar с кнопками, панелей задач и быстрого запуска и предоставив полный доступ ко всем функциям не только с клавиатуры, но и при помощи мыши. Менеджером можно пользоваться «из коробки», не ковыряясь в настройках и не читая длинных мануалов. Кроме того, он прозрачно интегрируется с GNOME.

Небольшой недостаток Bluetile заключается в нетривиальности установки. Проект молод и ещё не успел обзавестись ни PPA, ни даже .deb пакетом. Но, хотя Bluetile и нужно собирать из исходников самому, всё не так сложно, как можно подумать. Для Ubuntu 9.10 процесс выглядит так.

Haskell

Конечно же, нам понадобится Хаскель и биндинги для библиотек GTK+ и Glade.

$ sudo apt-get install ghc6
$ sudo apt-get install libghc6-gtk-dev libghc6-glade-dev

Cabal

Cabal для Haskell — тоже самое, что и easy_install для Python, gem для Ruby, apt для Debian/Ubuntu. В общем, вы поняли, о чём я :)

Кроме того, что кабал умеет разруливать зависимости между пакетами, он хорош ещё тем, что ставит всё в ~/.cabal. Т.е. можно не переживать, что система будет захламляться файлами, которые потом нужно будет искать как иголку в стоге сена.

# ставим необходимые библиотеки
$ sudo apt-get install libghc6-network-dev libghc6-parsec-dev libghc6-mtl-dev libghc6-zlib-dev
# качаем исходники кабала...
$ wget http://haskell.org/cabal/release/cabal-install-0.6.2/cabal-install-0.6.2.tar.gz
# ...распаковываем...
$ tar -xvvf cabal-install-0.6.2.tar.gz
#...и устанавливаем
$ cd cabal-install-0.6.2 && ./bootstrap.sh
# для удобства, сделаем ссылку в /usr/local/bin/
$ sudo ln -s $HOME/.cabal/bin/cabal /usr/local/bin/cabal

Собственно, сабж

$ cabal update
$ cabal install bluetile
~/.cabal/bin/bluetile

В общем, если вы тоже периодически ловите себя на мысли, что «борьба» с окнами отнимает слишком много сил — вам, определенно, следует посмотреть в сторону мозаичных оконным менеджеров и попробовать Bluetile. В качестве бонуса: список хоткеев и для любителей cheetsheets — шпаргалка по Xmonad.


  1. Проект анонсирован в сентябре, а 6 декабря его код был включен в Xmonad.