понедельник, 8 ноября 2010 г.

vimdiff + git

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

Любители vim знаю про vimdiff. Как скрестить этих двух замечательных зверей (Git и vimdiff)?

Очень просто. В терминале вводим:

$ git config --global diff.tool vimdiff
$ git config --global difftool.prompt false
$ git config --global alias.vimdiff difftool

Теперь для просмотра изменений достаточно ввести:

$ git vimdiff
Замечание: при просмотре изменений, для перехода к следующему файлу жмите два раза ZZ.

среда, 8 сентября 2010 г.

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

Однажды захотелось мне как-то выделить работу в терминале под суперпользователем. Придумал использовать цветовую дифференциацию приглашения. Например вот так: Теперь о том, как это сделать.
В терминале:
$ cp .bashrc .bashrc_backup
$ sudo cp /root/.bashrc /root/.bashrc_backup

Добавьте код, представленный ниже в файлы ~/.bashrc и /root/.bashrc.
GREEN="\[\033[32m\]" # foreground green
RS="\[\033[0m\]"    # reset
RED="\[\033[31m\]" # foreground red
if [ "$(id -u)" != "0" ]; then
    PS1="${GREEN}\\$ ${RS}"
    PS2="${GREEN}> ${RS}"
else
    PS1="${RED}\\$ ${RS}"
    PS2="${RED}> ${RS}"
fi

Все, готово!
Дополнительно: Скрипт для просмотра кодов цветов:
#!/bin/bash
#
#   This file echoes a bunch of color codes to the 
#   terminal to demonstrate what's available.  Each 
#   line is the color code of one forground color,
#   out of 17 (default + 16 escapes), followed by a 
#   test use of that color on all nine background 
#   colors (default + 8 escapes).
#

T='gYw'   # The test text

echo -e "\n                 40m     41m     42m     43m\
     44m     45m     46m     47m";

for FGs in '    m' '   1m' '  30m' '1;30m' '  31m' '1;31m' '  32m' \
           '1;32m' '  33m' '1;33m' '  34m' '1;34m' '  35m' '1;35m' \
           '  36m' '1;36m' '  37m' '1;37m';
  do FG=${FGs// /}
  echo -en " $FGs \033[$FG  $T  "
  for BG in 40m 41m 42m 43m 44m 45m 46m 47m;
    do echo -en "$EINS \033[$FG\033[$BG  $T  \033[0m";
  done
  echo;
done
echo

Дополнительные ссылки:
http://ubuntuforums.org/showthread.php?t=614743
http://www.faqs.org/docs/Linux-HOWTO/Bash-Prompt-HOWTO.html

пятница, 27 августа 2010 г.

Отключаем мигание терминала в GNOME (gnome-terminal)

Итак, есть проблема: терминал GNOME (gnome-terminal) мигает экраном, когда консольные программы предупреждают нас о чем-то (например, если нажать Backspace в пустой строке bash). Называется эта надоедающая хрень - visual bell. Поиск места в GNOME, где это отключается, ни к чему не привел. Возникает такая оказия в дистрибутиве Ubuntu 10.04 (Lucid Lynx).

Решение: добавляем в файл

~/.gconf/apps/metacity/general/%gconf.xml
где-нибудь между тегами <gconf> ... </gconf> вот такую волшебную строчку:
<entry name="visual_bell" mtime="1253605354" type="bool" value="true"/>

Если нужно отключит звук, то Edit→Profile Preferences и убираем галку c Terminal bell.

UPDATE: Вдогонку. screen, гад эдакий, все равно мигает. Лечится:
echo "vbell off" >> ~/.screenrc

четверг, 30 апреля 2009 г.

Как удалить клиентскую версию Symantec Antivirus с установленным паролем

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

В конце концов, решив все-таки поискать в интернете, нашел на сайте производителя более простой способ. В реестре Windows:

HKEY_LOCAL_MACHINE\SOFTWARE\INTEL\LANDesk\VirusProtect6\CurrentVersion\Administrator Only\Security\
Необходимо установить ключ
useVPuninstallpassword
c 1 в 0. И все. После этого антивирус легко и просто удаляется из ОС без запроса пароля.

четверг, 16 апреля 2009 г.

Установка и базовая настрока apache, mod_python, MySQL под Windows

Это маленький "how to" об установке и базовой настройки Apache 2, Python 2.5, mod_python, MySQL 5, а также пример запуска на полученной конфигурации приложения, написанного на Python с применением дополнительных отдельно распространяемых библиотек. Необходимый набор:
  • Windows XP (испытывалось на версии с SP3)
  • Apache 2 (испытывалась последняя на момент написания версия - 2.2.11)
  • Python 2.5 (испытывалась последняя на момент написания версия ветки 2.5 - 2.5.4)
  • mod_python (испытывалась последняя на момент написания версия - 3.3.1)
  • MySQL 5 (испытывалась последняя на момент написания версия - 5.1.33)

Установка Apache 2.2.X

  1. Скачиваем Apache вресии 2.2.1: http://apache.rinet.ru/dist/httpd/binaries/win32/apache_2.2.11-win32-x86-openssl-0.9.8i.msi
  2. Запустите установку.
  3. При установке: Network Domain: localhost Server Name: localhost Administrator's Email Address: свой почтовый адрес
  4. Далее оставьте все по-умолчанию.
  5. Запустите браузер и введите в поле адреса: http://localhost В окне должна появиться надпись большими буквами "It Works!".

Установка Python 2.5

  1. Скачиваем Python 2.5.4: http://www.python.org/ftp/python/2.5.4/python-2.5.4.msi
  2. Запустите установку.
  3. При установке оставьте все настройки по-умолчанию.

Установка mod_python 3.3.X

  1. Скачиваем mod_python: http://mirror.prvtgeo.com/apache/httpd/modpython/win/3.3.1/mod_python-3.3.1.win32-py2.5-Apache2.2.exe
  2. Запустите установку.
  3. При установке произойдет запрос каталога с установленным Apache. Укажите правильный путь. По-умолчанию путь следующий: C:\Program Files\Apache Software Foundation\Apache2.2
  4. Завершите установку.
  5. Откройте текстовым редактором файл C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf
  6. Найдите строчку, начинающуюся со слова "LoadModule"
  7. Перед этой строчкой добавьте строчку:
    LoadModule python_module modules/mod_python.so
  8. Сохраните и закройте файл.

Тестирование связки Apache, Python, mod_python

  1. Откройте в текстовом редакторе файл C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf
  2. Найдите строчку, начинающуюся с директивы DocumentRoot.
  3. Замените всю строку на следующую: DocumentRoot "C:/htdocs"
  4. Теперь корневая папка веб-сервера находится в указанном выше каталоге.
  5. Найдите строку: <Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/">
  6. Замените ее на: <Directory "C:/htdocs/">
  7. Добавьте в конце файла:
    <Directory "C:/htdocs/pytest/">
     SetHandler python-program
     PythonHandler mod_python.publisher
     PythonDebug On
    </Directory>
  8. Создайте каталог C:\htdocs\pytest
  9. В этом каталоге создайте файл index.py и добавьте в него:
    def index(req):
       html = "<html><body><h1>"
       return html+"Hello World!</h1></body></html>"
    
  10. Запустите браузер и введите адрес: http://localhost/pytest
  11. Должна появиться страница с традиционным приветствием. Если это произошло, то Python благополучно интегрирован с Apache.

Установка MySQL

  1. Скачайте пакет:http://mysql.oss.eznetsols.org/Downloads/MySQL-5.1/mysql-5.1.33-win32.msi
  2. Установите, оставив все настройки по умолчанию. При конфигурации сервера рекомендуется оставить все настройки по умолчанию, за исключением кодировки: установите опцию Best Support For Multilingualism.
  3. Скачайте пакет Python библиотеки доступа к MySQL: http://switch.dl.sourceforge.net/sourceforge/mysql-python/MySQL-python-1.2.2.win32-py2.5.exe
  4. Установите с настройками по умолчанию.
Здесь установка и базовая настройка закончилась. Если вы не хотите тестировать полученную связку написанным мною приложением "СУБМФ" (Система управления базой математических формул), то читать далее не стоит.

Установка дополнительных пакетов модулей для Python

Эти пакеты необходимо установить для запуска приложения "СУБМФ". Если вы не планируете запускать его, то эти модули нет надобности устанавливать.
  1. Скачайте пакет matplotlib: http://dfn.dl.sourceforge.net/sourceforge/matplotlib/matplotlib-0.98.5.2.win32-py2.5.exe
  2. Установите, оставив все настройки по-умолчанию.
  3. Скайчайте пакет numpy: http://switch.dl.sourceforge.net/sourceforge/numpy/numpy-1.3.0-win32-superpack-python2.5.exe
  4. Установите, оставив все настройки по-умолчанию.

Настройка окружения для запуска тестируемого приложения

Рекомендую использовать браузер Firefox для тестирования данного приложения.
  1. Необходимо добавить нового пользователя в СУБД MySQL и дать ему права доступа к новой БЛ. Для этого:
  2. Создайте файл C:\cdu.sql со следующим содержимым:
  3. create database func_db;
    CREATE USER userp;
    grant CREATE,INSERT,DELETE,UPDATE,SELECT on func_db.* to userp;
    set password for userp = password('mysecretpassword');
    flush privileges;
    
  4. Откройте через меню MySQL Command Line Client
  5. Введите команду: source c:\cdu.sql
  6. Скачайте архив приложения: http://www.voytik.ru/plot.zip
  7. Распакуйте в каталог C:\htdocs
  8. Откройте в текстовом редакторе файл C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf
  9. Добавьте в конце файла:
    <Directory "C:/htdocs/plot/">
     SetHandler python-program
     PythonHandler mod_python.publisher
     PythonDebug On
    </Directory>
  10. Перезапустите Apache
  11. В браузере введите адрес: http://localhost/plot
Если возникнут вопросы, пишите в комментарии - я помогу чем смогу.

вторник, 17 февраля 2009 г.

Установка и настройка сервера subversion под fedora/redhat

Примечание: нижеследующая инструкция тестировалась под ОС Fedora 10.
  1. Устанавливаем необходимые пакеты: $ su # yum install httpd mod_dav_svn subversion
  2. Редактируем файл /etc/httpd/conf.d/subversion.conf и добавляем в него:
  3. <Location /svn>
       Order deny,allow
       Allow from 192.168.0
       Allow from 127.0.0
       Deny from All
       Satisfy Any
    #
       DAV svn
       SVNParentPath /var/svn/repos
    #
       AuthType Basic
       AuthName "Authorization Realm"
       AuthUserFile /var/svn/users/passwords
       AuthzSVNAccessFile /var/svn/permissions/svnauthz.conf
       Require valid-user
    </Location>
  4. Создаем директории: $ su # mkdir /var/svn # mkdir /var/svn/{repos,users,permissions}
  5. Добавляем пользователей: $ su # cd /var/svn/users # htpasswd -c passwords admin # htpasswd passwords user
  6. Редактируем файл /var/svn/permissions/svnauthz.conf и добавляем в него: [groups] admins = admin users = user [/] @admins = rw users = r
  7. Создаем репозитарий: $ su # cd /var/svn/repos # svnadmin create my_repo # chown -R apache my_repo При необходимости добавляем в файл /var/svn/permissions/svnauthz.conf настройки доступа для отдельных пользователей. [my_repo:/] user1 = r user2 = rw
  8. Запускаем apache:
    $ su
    # /etc/init.d/httpd start
  9. Проверяем работу конфигурации:
    ~$ svn co http://localhost/svn/my_repo
    Authentication realm:  Authorization Realm
    Password for 'voyt':
    Checked out revision 0.
    ~$ cd my_repo
    my_repo$ mkdir trunk tags branches
    my_repo$ svn add *
    A         branches
    A         tags
    A         trunk
    my_repo$ svn commit -m "Created default tree"
    Adding         branches
    Adding         tags
    Adding         trunk
    
    Committed revision 1.
    Можно проверить в браузере по адресу: http://localhost/svn/my_repo
Ссылка: http://sysalex.blogspot.com/2008/12/subversion-server-fedora-core-10.html

суббота, 13 сентября 2008 г.

Установка драйверов Xilinx Platform Cable USB в GNU/Linux

В данной заметке я изложу по шагам последовательность действий установки и настройки ПО для поддержки программаторов фирмы Xilinx для ОС GNU/Linux и ПО САПР Xilinx ISE. Все ниже написанное проверялось под ОС Fedora 8. Использовался программатор Xilinx Platform Cable USB ( Model DLC9G ) и ISE версии 10.1 ( SP2 ). Я не рекомендую использовать драйверы windrv, а использовать libusb как промежуточную библиотеку доступа ПО Xilinx к программатору.

Для начала устанавливаем fxload:

$ su
# yum install fxload

fxload - это утилита загрузки прошивки в USB-контроллеры.

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

$ wget ftp://ftp.xilinx.com/pub/utilities/fpga/install_drivers.tar.gz
$ tar xvf install_drivers.tar.gz
$ cd install_drivers/linux_drivers/pcusb
$ su
# ./setup_pcusb

Теперь можно проверить работоспособность программатора - подключаем его к USB и к плате. Проверяем если загорелся зеленый светодиод. Чтобы iMPACT не использовал драйвер windrvr, а использовал библиотеку libusb необходимо установить переменную окружения XIL_IMPACT_USE_LIBUSB в 1.

Я рекомендую ее поместить в .bashrc:

$ echo "export XIL_IMPACT_USE_LIBUSB=1" >> ~/.bashrc

Замечу, что данный прием работает только с ISE версии 10 и выше. Для старых версий (9 и 8) воспользуйтесь следующей ссылкой: http://rmdir.de/~michael/xilinx/.

Теперь проверяем работоспособность iMPACT:

$ . /opt/ise101/ISE/settings64.sh
$ impact&

При создании новго проекта ( create new project ) отключаем автоматическое сканирование ( опцию Configure devices using Boundary-Scan (JTAG) устанавливаем в Enter a Boundary-Scan chain manualy ). В главном меню выбираем - Output -> Cable setup… и в появившемся диалоговом окне устанавливаем Communication Mode в Xilinx USB Cable и жмем Ок. Далее жмем Ctrl+I для запуска сканирования цепочки JTAG. В результате iMPACT должен найти поддерживаемые устройства.

УсЁ! :)