Октябрь 2008

nvidia + binary drivers

31.10.2008

Система: Ubuntu
Вручную установлены бинарные драйверы NVIDA.
После обновления системы менеджером пакетов, X.org работает только в безопасном режиме.

Решение: пока нет
Суть проблемы в том, что при обновлении ядра пропал модуль, который драйвер собирал при предыдущей установке.
Поэтому драйвер надо переустановить. К сожалению, при работающем X.org сделать это невозможно. Поэтому:

  • Переключаемся в текстовую консоль (Alt-F1)
  • Убиваем X.org:
    1. ~$ sudo /etc/init.d/gdm stop
  • Собственно, устанавливаем драйвер:
    1. ~$ sudo ./NVIDIA-Linux-x86-177.80.pkg1.ru
  • И перегружаемся:
    1. ~$ sudo reboot

Что читать:
http://habrahabr.ru/blogs/ubuntu/42105/
http://albertomilone.com/nvidia_scripts1.html
http://forum.ubuntu.ru/index.php?topic=3031.0
https://help.ubuntu.com/community/BinaryDriverHowto/Nvidia

Git links: что читать

20.10.2008

Харитон прислал немного чтива по Git:

git в картинках:
http://www.altlinux.org/Git/SomeDestReposViaBranches

о том как правильно и безопасно построить процесс работы
сервер <-> рабочий компьютер
http://iportnov.blogspot.com/2008/06/deployment-git.html

еще один must read
file:///home/hariton/Doc/Git/by_Zolotariov/198-git-na-dvoih.html

это, если изучать глубины (очень интересное чтиво):
http://los-t.livejournal.com/tag/git+guts

шпаргалка
http://cheat.errtheblog.com/s/git/

это переводы канонических статей на русский язык
http://www.freesource.info/wiki/RuslanHihin/20povsedevnyxkomandgit&

и вот главное:
http://freesource.info/wiki/RuslanHihin/gitusermanual?v=b7s&

UPD:
The Git Community Book
This book has been built by dozens of people in the Git community, and is meant to help you learn how to use Git as quickly and easily as possible.
http://book.git-scm.com/

цветное приглашение bash prompt

15.10.2008

В unix-консоли, а в частности в приглашении bash можно использовать ANSI-последовательности для задания цветового вывода:

  1.  
  2. PS1='[\\e[01;32m]\\[email protected]\\h[\e[00m]:[\\e[01;34m]\\w[\\e[00m]$ '; export PS1

Цвет задается последовательностью вида \e[ATTR;FG;BGm, где ATTR - необязательный аттрибут, FG - цвет переднего плана, BG - цвет фона.

Сброс цвета к значению по умолчанию - \e[0m

Краткую таблицу соответствия кодов конкретным цветам опубликовал в статье "Prompt Magic" Дэниел Роббинс:

colortable.gif

С помощью ATTR можно делать текст полужирным, подчеркнутым, мигающим, и т.п.:

0 по-умолчанию
1 жирный
22 не жирный
4 подчеркнутый
24 не подчеркнутый
5 мигающий
25 не мигающий
7 инвертированный
27 не инвертированный

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

  1. #!/bin/sh
  2. ############################################################
  3. # Nico Golde <nico(at)ngolde.de> Homepage: http://www.ngolde.de
  4. # Last change: Mon Feb 16 16:24:41 CET 2004
  5. ############################################################
  6.  
  7. for attr in 0 1 4 5 7 ; do
  8. echo "----------------------------------------------------------------"
  9. printf "ESC[%s;Foreground;Background - \\n" $attr
  10. for fore in 30 31 32 33 34 35 36 37; do
  11. for back in 40 41 42 43 44 45 46 47; do
  12. printf '\\033[%s;%s;%sm %02s;%02s ' $attr $fore $back $fore $back
  13. done
  14. printf '\\n'
  15. done
  16. printf '\\033[0m'
  17. done
  18.  

Ссылки по теме:

Макросы RCS

13.10.2008

Ниже приведен список макросов RCS, которые можно использовать внутри любых текстовых файлов. При checkout'е макрос будет развернут в значение.

Макросы RCS (RCS Keywords)

© http://babbage.cs.qc.edu/courses/cs701/Handouts/rcs_keywords.html

© Перевод Алексей Шатловский, 2008, http://shatlovsky.ru/blog/2008/10/13/makrosy-rcs/

$Author$
Имя учетной записи юзера, который внес зарегистрировал (check-in) последнию ревизию

$Date$
Дата и время (UTC) последнего check-in.

$Header$
Стандартный заголовок, содержащий полное имя RCS-файла, номер ревизии, дату (UTC), автора, состояние и имя учетной записи юзера, заблокировавшего ревизию (если заблокировано).

$Id$
То же, что и $Header$, но имя файла без полного пути.

$Locker$
Имя учетной записи юзера, заблокировавшего ревизию (пусто, если не заблокировано).

$Log$
Лог-сообщение, введенное во время checkin, предваренное заголовком, содержащим имя RCS-файла, номер ревизии, автора и дату. Существующие логи замещаются. Вместо этого, новые логи вставляются после $Log:...$. Это полезно для сохранения полной истории изменений исходного файла.

$RCSfile$
Имя RCS-файла без пути.

$Revision$
Номер ревизии.

$Source$
Имя и полный путь к RCS-файлу.

$State$
Состояние, назначенное ревизии опцией -s команд rcs(1) или ci(1).

vim tabs

01.10.2008

Открыть сразу несколько файлов в tab'ах в vim можно так:

~$ vim -p `find -type f -name '*.rb' -print0 | xargs -0 file -i | grep -v 'utf-8' | awk '{print $1}' | sed 's/://'`

(пример от Харитона, открываем в vim все ruby-файлы в кодировке, отличной от utf-8)
Здесь важен ключ -p: открыть файлы в табах.

Vim откроет столько буферов, сколько нашлось файлов, но не более tabpagemax, по умолчанию 10. Изменить количество табов можно в ~/.vimrc так:

set tabpagemax=15

При превышении tabpagemax новые табы не создаются, но навигировать по файлам все равно можно командами :next и :last.

Переключаться между табами можно командами: :tabnext, :tabprevious, :tablast, :tabfirst. Можно замапить из на горячие клавиши. Можно пользоваться горячими клавишами <C-PgUp> and <C-PgDown>.

Ещё полезное:
:tabn[ew] - открыть новый таб
:tabe[dit] [++opt] [+cmd] {file} - открыть файл в новом табе (типа :edit)
:tabf[ind] [++opt] [+cmd] {file} - найти файл в path и открыть в новом табе (типа :find)
CTRL-W gf - редактировать файл с именем, находящимся под курсором, в новом табе
CTRL-W gF - редактировать файл с именем, находящимся под курсором, в новом табе. Отмотать на строку которая указана после имени файла
:tabc[lose][!] - закрыть таб
:tabo[nly][!] - закрыть все табы кроме активного
:tabn[ext] (gt, <C-PageDown>) - переключиться на следующий таб
:tabp[revious] (:tabN[ext], gT) - на предыдущий таб
:tabr[ewind] (:tabfir[st]) - на первый таб
:tabl[ast] - на последний
:tabs - список табов
:tabm[ove] [N] - переместить текущий таб на место сразу за N-ым
:tabd[o] {cmd} - выполнить команду на каждом из табов (:tabdo %s/foo/bar/g)

Подробнее здесь - :help tabpage

Еще интересная фишка. Если переместить курсор на имя файла и нажать gf (go-to-file), то откроется альтернативный буфер с содержимым указанного файла. Старый файл как-бы пропадет из поля зрения. Однако на него можно быстро переключиться командой C-^, так же и обратно. Так удобно редактировать 2 файла одновременно.

По поводу полезных маппингов:
http://www.bygonesky.com/Programming/Settings/Vim/carlos.vim.html, смотреть начиная со 125-й строки.