суббота, 30 июня 2012 г.

bash - автозавершение команды из истории

Оказывается, это делается довольно просто. Нужно в файл ~/.inputrc вписать следующее:
"\e0A": history-search-backward
"\e[A": history-search-backward
"\e0B": history-search-forward
"\e[B": history-search-forward
"\e0C": forward-char
"\e[C": forward-char
"\e0D": backward-char
"\e[D": backward-char
После этого в командной строке можно набрать несколько символов, нажать стрелку "вверх" и получить автозавершение команды из истории.

вторник, 26 июня 2012 г.

Debian: осваиваю git

Решил давеча приобщиться к прекрасному. Ну в самом деле, кругом XXI век, а я до сих пор как школьник все свои проекты храню в папочках и раз в неделю архивирую. Захотелось по-взрослому, чтобы была система контроля версий, доступ к репозиторию по http и прочее - в общем, сам пока не знаю толком, чего мне доселе не хватало.

Первый же заплыв привел на github.com, а от него - к git. Командная строка, всё такое черно-серое, юниксоидное, бесплатное - словом, понравилось. Единственная проблема: как поднять репозиторий, доступный по http (у гитхаба какие-то ограничения, да и вообще прикольно же).

К счастью, нашлась толковая инструкция. Вкратце последовательность действий такова:

1. Конфигурируем apache2. Добавляем в /etc/apache2/sites-available/default следующие строки:
SetEnv GIT_PROJECT_ROOT /путь-до-репозитория
SetEnv GIT_HTTP_EXPORT_ALL

ScriptAliasMatch \
 "(?x)^/git/(.*/(HEAD | info/refs | objects/(info/[^/]+ | [0-9a-f]{2}/[0-9a-f]{38} | \
                    pack/pack-[0-9a-f]{40}\.(pack|idx)) | \
                    git-(upload|receive)-pack))$" \
                    "/usr/lib/git-core/git-http-backend/$1"

<Directory /usr/lib/git-core/>
    Options +ExecCGI
    Order Allow,Deny      
    Allow from all
</Directory>

<Location /git>
    AuthType Basic
    AuthName "Private Git Access"
    AuthUserFile /etc/apache2/authusers
    Require valid-user
</Location>

2. Добавляем в файл с разрешенными пользователями нового пользователя по имени username командой:
htpasswd -c /etc/apache2/authusers username

3. Перезапускаем апач командой:
sudo /etc/init.d/apache2 restart

4. Настраиваем репозиторий. Создаем внутри каталога /путь-до-репозитория очередную папочку для проекта myProject, переходим в неё и выполняем волшебную команду:
git init --bare

5. Раздаем на каталог myProject права для учетной записи, под которой работает апач:
sudo chown -R www-data myProject
sudo chgrp -R www-data myProject

После этого репозиторий должен быть доступен для использования. Пользоваться всем этим можно так:

1. Устанавливаем и настраиваем git на клиентской машине. Вводим имя пользователя (username), его e-mail (это будет отображаться при просмотре истории коммитов) и, если нужно, прокси:
git config --global user.name username
git config --global user.email mymail@mymail.ru
git config --global http.proxy http://myproxy:8888

2. Можно еще указать, чтобы git кэшировал на какое-то время пароли:
git config --global credential.helper 'cache --timeout=3600'
(честно говоря, у меня не сработало; приходится каждый раз при выполнении команд git push, git pull вводить пароль)

3. Клонируем нужный проект в локальный каталог командой:
git clone http://username@host/git/myProject

4. Меняем в проекте всё, что нам надо, и скармливаем изменения git-у:
git add мой-измененный-файл

5. Коммитим изменения в проекте:
git commit -m "описание изменений"

6. Заливаем измененный проект обратно на сервер:
git push origin master

Кстати, вот тут лежит хороший учебник.

пятница, 11 мая 2012 г.

Windows XP: Не удалось выполнить действие из-за неправильной установки клиента почты по умолчанию

Две машины. На одной всё хорошо (ну как всё...), на другой при попытке в excel-е кликнуть на гиперссылку, содержащую e-mail, получаем вышеуказанную ошибку.

Оказалось, в реестре почему-то испортился раздел HKLM\Software\Classes\mailto.
На здоровой машине, у которой почтовым клиентом числится OE, этот раздел должен выглядеть так:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mailto]
@="URL:Протокол MailTo"
"EditFlags"=hex:02,00,00,00
"URL Protocol"=""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mailto\DefaultIcon]
@=hex(2):25,00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,46,00,69,00,6c,00,65,\
  00,73,00,25,00,5c,00,4f,00,75,00,74,00,6c,00,6f,00,6f,00,6b,00,20,00,45,00,\
  78,00,70,00,72,00,65,00,73,00,73,00,5c,00,6d,00,73,00,69,00,6d,00,6e,00,2e,\
  00,65,00,78,00,65,00,2c,00,2d,00,32,00,00,00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mailto\shell]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mailto\shell\open]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mailto\shell\open\command]
@=hex(2):22,00,25,00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,46,00,69,00,6c,\
  00,65,00,73,00,25,00,5c,00,4f,00,75,00,74,00,6c,00,6f,00,6f,00,6b,00,20,00,\
  45,00,78,00,70,00,72,00,65,00,73,00,73,00,5c,00,6d,00,73,00,69,00,6d,00,6e,\
  00,2e,00,65,00,78,00,65,00,22,00,20,00,2f,00,6d,00,61,00,69,00,6c,00,75,00,\
  72,00,6c,00,3a,00,25,00,31,00,00,00

среда, 9 мая 2012 г.

SQL Server 2005 + Win2008: Login failed (Error: 18456, State: 11)

После установки SQL Server 2005 на Windows 2008 со смешанным режимом аутентификации выяснилось, что подцепиться с доменной, даже самой крутой учеткой не удается. Решение помогло такое:
create login [domain\user] from windows
go
sp_addsrvrolemember [domain\user], 'sysadmin'
go

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

Ubuntu 12.04: Skype magic

Команда запуска выглядит так:
LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l1compat.so /usr/bin/skype
Иначе видео не работает. Причем, даже на 64-битной версии - всё равно i386.

UPD 2013-08-15: Давно не пользовался скайпом, а тут понадобился - и обнаружилась неприятность: звук с какой-то реверберацией, микрофон не работает... В общем, оказывается, его даво пора было обновить. Под ubuntu 13.04 этот процесс выглядит так:
1. Подключаем репозиторий:
# add-apt-repository "deb http://archive.canonical.com/ $(lsb_release -sc) partner"
# apt-get update
2. Устанавливаем Skype:
# apt-get install skype && sudo apt-get -f install

пятница, 27 апреля 2012 г.

Ubuntu 12.04: русская раскладка клавиатуры

Обновился до Xubuntu 12.04. Оказалось, теперь не могу печатать по-русски. После гугления "xubuntu russian keyboard layout ctrl+shift" выяснилось, что нужно проделать следующее:
Right-click on a panel, select add item and add the keyboard layout switcher.
(of course xfce4-xkb-plugin – xkb layout switch plugin for the Xfce4 panel must be installed and you need to add the desired layout in /etc/X11/xorg.conf, e.g. Option “XkbLayout” “us, de, fr,ru” in the keyboard section lets me (and you too?) switch between these layouts)

Если по-русски: кликнуть правой клавишей мыши на панель xfce (тоже, кстати, нетривиальная задача - найти, где эта панель не закрыта дочерними элементами), выбрать пункт "добавить новые элементы", в появившемся диалоговом окне найти пункт "раскладки клавиатуры". В уголке экрана появится флажок, в контекстном меню которого будет пункт "Свойства", и там уже можно выбрать нужный способ переключения раскладок.

При этом должен быть установлен модуль xfce4-xkb-plugin (установить его можно командой sudo aptitude install xfce4-xkb-plugin).

Почему в предыдущей версии всё работало и без переключателя раскладки клавиатуры на панели задач - тайна, покрытая мраком.

Ну и флэшплеер опять заглючил. Когда ж его починят-то?..

P.S. Хочу обратно ScrollLock в качестве индикатора раскладки! Вот это не помога-а-ает:
1. Open /etc/X11/xorg.conf
2. Find and modify the following:
Section "InputDevice"
    Identifier  "Keyboard0"
    Driver      "keyboard"
    Option      "CoreKeyboard"
    Option "XkbRules" "xorg"
    Option "XkbModel" "pc105"
    Option "XkbLayout" "us, ru"
    Option "XkbOptions" "grp:ctrl_shift_toggle,grp_led:scroll"
EndSection

среда, 25 апреля 2012 г.

kdenlive: как создать DVD-диск?

Два вечера оттачивал свои mad skillz в искусстве создания видеофайлов с помощью kdenlive. В общем-то задача проста: есть кучка клипов в разных форматах, надо их запихнуть в DVD. Решается она тоже не очень сложно: запускаем kdenlive, добавляем в проект клипы, потом перетаскиваем эти клипы на временную шкалу внизу и нажимаем кнопку "Выполнить сборку". Однако возникает пара тонкостей:

1. Клипы имеют разную громкость. Чтобы её более-менее выровнять, на временной шкале кликаем правой клавишей нужный клип и в контекстном меню выбираем "Добавить эффект - Коррекция звука - Громкость (по ключевым кадрам)". Там громкостью клипа можно рулить.

2. Потребовались субтитры. В kdenlive с этим как-то совсем бедненько. В дерево проектов добавляем клип титров и там пишем, что нужно. Дальше кидаем этот клип на вторую дорожку под исходным клипом и мучаем появившийся между этими клипами желтый прямоугольник перехода до достижения нужного эффекта.

3. И, наконец, собственно создание образа DVD. Если нажать кнопку "Сборка проекта", то появится окошко, в котором по умолчанию стоит назначение "Сборка в файл". Я, наивный вьюноша, выбрал кодек mpeg-2, получил файл *.mpg, который затем попытался скормить "Мастеру создания DVD" (за которым скрывается аппликуха по имени dvdauthor). Мастера стошнило примерно с такими словами:
    WARN: Skipping sector, waiting for first VOBU...
    ERR: SCR moves backwards, remultiplex input
Видимо, этот "мастер" по-человечески понимает только файлы *.vob. Чтобы требуемый VOB создать, нужно сделать примерно следующее: выбрать в свойствах проекта какой-нибудь не сильно крутой профиль видео, например "DV/DVD PAL", а при сборке проекта указать назначение "DVD". Тогда получается VOB, из которого "Мастер создания DVD" шустро делает образ диска *.iso, прожигающийся, в свою очередь, на болванку командой:
growisofs -dvd-compat -Z /dev/dvd=mydisk.iso

Кстати, оказывается, вожделенный VOB из прочих форматов можно получить еще и так:
ffmpeg -i inputfile.mpg -target pal-dvd inputfile.vob