28 октября 2009

Все дороги ведут к Слуцкому?

И все же, не удержусь и напишу. Интересно будет посмотреть насколько мои предположения совпадут с событиями предстоящего года-двух.

Газзаев -> Зико -> Рамос -> Слуцкий
Еще в прошлом году, после объявления о скором уходе Газзаева я задумывался о будущем тренере ЦСКА. Лучшей кандидатурой я видел Божовича, тогда тренировавшего пермский "Амкар". Игра "Амкара" впечатляла своей цельностью и организованностью. Фантастическая победа ЦСКА в кубке именно над "Амкаром" это только подтверждает. Думаю все видевшие тот матч не станут отрицать, что большую часть матча доминировали именно пермяки. Только в самом конце ЦСКА вырвал победу за счет лучших физических кондиций и мастерства.
Кстати недавнее поражение от "Москвы" чем-то похоже на тот финал. Первый тайм - доминирование команды Божовича, второй - попытка спастись. То, что удалось команде Газзаева весной 2008 не удалось команде Рамоса осенью 2009.
Можно предположить какой выбор стоял перед Гинером прошлой осенью. Договоренность с Рамосом и освобождающийся из "Амкара" Божович. Возможно еще кто-то, но я рассмотрю именно их, так как Божович впечатлил меня, а Гинер сам рассказал про Рамоса. Как мне кажется, выбор очевиден: Рамос - больше опыта, больше трофеев. Но тут вмешался "Реал" и вариант с Рамосом отпал. К этому времени Божовича оперативно увела "Москва". Божович не захотел быть запасным вариантом, хотя и в сильную команду, чем заслужил мое еще большее уважение. В цейтноте был взят Зико.
При Зико команда играла плохо, но два трофея выиграла. За трофеи спасибо. Могла ли команда играть лучше - сказать сложно. И в последнем сезоне Газзаева весна не удалась. Летом продажа двух ведущих игроков атаки: Жирков и Вагнер. Игра пропадает совсем, результат тоже, затем пропадает и Зико.
А между тем Рамос уже свободен. Лига Чемпионов манит любого тренера, и Рамос соглашается взяться за дело.
Работа у Рамоса идет с переменным успехом, но случаются травмы еще у трех (!) атакующих игроков (Пилиев, Гонсалес и Гильерме) и шансов на Лигу по итогам года практически не остается. Играть только в чемпионате России Рамосу не интересно. В тоже время свободен Слуцкий. Выбор у Гинера между большим контрактом сильного европейского тренера, которому будет неинтересно работать и меньшим контрактом российского перспективного тренера, у которого мотивация будет зашкаливать. Результат выбора уже известен. Слуцкий в ЦСКА.

Богатый клуб -> Сокращение финансирования -> Слуцкий
Уменьшение инвестиций в связи с финансовым кризисом, полугодовое отсутствие спонсора и строящийся стадион очевидно стоили немалых убытков акционерам ЦСКА. В такой ситуации логичным выглядит решение на время уменьшить амбиции, снизить расходы на команду и сконцентрироваться на постройке стадиона. Завершение стройки сразу же сильно облегчит бюджет. Пока же ограничиться наличием способной молодежи. Полагаю, Газзаев не захотел еще раз начинать все с начала и ушел в более сильный клуб. Не захотел строить молодую команду в чужой стране и Рамос.
В это время появился свободный специалист, неплохо себя зарекомендовавший именно работой с молодежью - Слуцкий.

Что дальше
Первое и главное - постройка своего стадиона. Ради этого будут продажи игроков и облегчение зарплатной ведомости.
Второе - поддержка команды на уровне 4-6 места. Необходимо привлекать спонсоров, а к слабой команде они не пойдут. Все таки ЦСКА достаточно известный бренд и возможность выгодного спонсорского контракта будет практически всегда.
Третье - воспитание/покупка молодых игроков. На свободные деньги, которых похоже будет мало, будут набирать молодых и перспективных. Кто-то может и "выстрелит".

Надежды и ожидания
Полагаю зимой из команды уйдут Игнашевич, Красич, Алдонин. Надеюсь за ними последуют и Одиа с Карвалью. Видимо закончит играть Рахимич, хотя еще год поиграть. выходя на замену. он может. В любом случае будет здорово, если Элвер останется в клубе, даже не в качестве игрока. Не очень ясна ситуация с Акинфеевым. Если строить новую команду с ним, необходима уверенность, что ближайшие 2-3 года от точно никуда не уйдет. Если такая договоренность не будет достигнута, однозначно Игоря надо отпускать. Опытным братьям и Шемберасу уезжать куда-то, как мне кажется, не имеет смысла. Молодым Нециду, Щенникову и Пилиеву тоже нужно оставаться, чтобы доказывать свое мастерство. Прибавим сюда еще Мамаева и Дзагоева, у которых опыта уже немало, несмотря на молодость, Плюс Гонсалес и Гильерме. Подбор игроков в общем-то уже приличный. А если еще молодые африканцы Секу, Осени, Маазу выйдут на свой лучший уровень - это будет очень серьезное усиление.

Акинфеев
Чосич Григорьев Березуцкий А. Березуцкий В. Щенников
Мамаев Шемберас
Дзагоев
Гильерме Нецид

Акинфеев
Григорьев Березуцкий А. Березуцкий В.
Мамаев Шемберас
Маазу Дзагоев Гонсалес
Гильерме Нецид


Счастливый конец
Пока строится стадион Слуцкий тренирует, молодые игроки набираются опыта. Затем возвращается Газзаев, покупается две-три звезды и выигрывается Лига Чемпионов.

PS:
А в это межсезонье, добыть бы Тарасова у "Москвы", Рязанцева у "Рубина", да еще Семака бы вернуть. Вот кто настоящий капитан.

02 октября 2009

vim tip

function! s:insert_gates(arg)
let gatename = toupper(a:arg) . "_" . substitute(toupper(expand("%:t")), "\\.", "_", "g")
execute "normal i#ifndef " . gatename
execute "normal o#define " . gatename . "\n\n\n"
execute "normal Go#endif /* " . gatename . " */\n"
normal kkk
endfunction
command -nargs=1 PragmaOnce call s:insert_gates()

Небольшая полезность для C/C++. Аналог "#pragma once".
По префиксу и имени файла генерирует "защитные" define'ы.
В качестве префикса может использоваться имя проекта, например.

28 августа 2009

vim tip

1,$!sort

Пропустить регион через фильтр. В данном случае пропустить через sort строки файла от первой до последней.

g/^ \+DEBUG.*/. d

Удалить все строки начинающиеся с DEBUG.


function! s:svn_annotate()
let lineNum = line('.')
execute '1,$!svn ann %'
execute "normal ".lineNum."gg"
endfun
command! -nargs=0 SvnAnn call s:svn_annotate()

Удобно посмотреть через SVN кто менял данную строчку.

09 июля 2009

per-user установка с помощью easy_install

с версии 2.6 в python появились полезные настройки:
PYTHONNOUSERSITE
PYTHONUSERBASE
PEP 370

Чтобы иметь возможность устанавливать сторонние python-пакеты локально с помощью easy_install или setup.py (distutils) достаточно выставить переменную:
PYTHONUSERBASE=/home/evgeny/local

и прописать опцию user в ~/.pydistutils.cfg

[install]
user=True

15 июня 2009

новый xorg в Slackware-current

Итак Slackware-current получила новый Xorg и вместе с ним массу интереснейших эффектов, ну а я массу впечатлений.
Увидев столь существенные изменения в Changelog'е решил отложить обновление на праздники, и не прогадал.
Обновив все доступные пакеты, я попробовал загрузить новые иксы. И вот что из этого получилось.
Во первых "наконец-то" иксы собраны с жесткой привязкой к libhal.
Во вторых интереснейшим образом повели себя тачпад и клавиатура.
В третьих окончательно и бесповоротно отсох драйвер видеокарты (i810).

Для полноты картины:

Asus A3fc
GPU: intel 945GM
touchpad: synaptics

Начнем с третьего пункта, как наиболее радикального.
Со старым xorg.conf иксы работать не хотели ни в какую. Ничего страшного. Внесем исправления в секцию "Device", пропишем вместо i810 новый драйвер intel и вуаля.
Итак иксы загрузились. Однако в глаза бросилось "что-то не-то". Этим чем-то оказалось оказалось дефолтное DPI равное 86. А я привык к 96. Опция DisplaySize в xorg.conf признаков жизни не подавала, что с ней, что без нее DPI не изменялся.
Пришлось немного поизучать эту тему. Оказалось, что для некоторых карт в Xorg с версии 7.2 необходимо добавлять опция NoDDC в секцию Device.
Итого получилось вот что:

Section "Device"
Identifier "videocard"
VendorName "Intel"
BoardName "945 GPM"
Driver "intel"
BusId "PCI:0:2:0"
Option "DRI" "true"
Option "NoDDC"
Option "AccelMethod" "xaa"
EndSection

Видимо в новом Xorg изменился метод ускорения по-умолчанию. mplayer начал здорово тормозить.
Возвращаем старый метод ускорения XAA.

Переходим к пункту 2.
О клавиатуре. Нельзя сказать что она не работает. Работает все, но стрелочка вверх (up arrow) ведет себя как PrintScreen. Так как первое что я делаю загрузившись в иксы - это вызываю эмулятор терминала, в котором активно пользуюсь историей команд, то заметил такое, мягко говоря, странное поведение я мгновенно. Что же делать? Оказалось нужно отключить автоопределение устройств. Итак снова берем в руки vi и xorg.conf и добавляем в секцию ServerFlags новую опцию AutoAddDevices с значением false.

Section "ServerFlags"
...
Option "AutoAddDevices" "false"
...
EndSection

Кнопка вверх работает адекватно, и слава Богу.
По ходу дела выяснилось, что на три кнопки (Ctrl-Alt-Bksp) иксы больше не пошлешь, опция DontZap по умолчанию включена. Снова залезаем в xorg.conf в раздел ServerFlags и выставляем нужное:

Section "ServerFlags"
...
Option "DontZap" "false"
...
EndSection

Запускаем иксы, проверяем три кнопки. А вот и не работает. Пристальное изучение вопроса привело к XKB, а именно к опции terminate:ctrl_alt_bksp.
И снова открывает xorg.conf. На этот раз секцию InputDevice с описанием клавиатуры и добавляем нужное:

Section "InputDevice"
...
Option "XkbOptions" "grp:ctrl_shift_toggle,grp:switch,grp_led:scroll,terminate:ctrl_alt_bksp"
...
EndSection

Вот теперь клавиатура работает адекватно.

О тачпаде.
Тачпад работает, но довольно странно. Перестал работать горизонтальный и вертикальный скролл а также тыркание пальцем в поверхность (это должно было означать клик), ну и за компанию курсор стал передвигаться ОЧЕНЬ неторопливо.
Благо нашлась утилита synclient. Запущенная с опцией -l она показывает список настроек тачпада и позволяет их менять так сказать в реальном времени. После изучения вывода данной команды были обнаружены искомые опции и тут же проверены:

synclient VertEdgeScroll=1
synclient HorizEdgeScroll=1
synclient TapButton1=1

Помогло мгновенно. Скролл заработал, клик по поверхности тоже. И двойной и тройной.
Ну а чтобы вернуть приличную скорость курсору оказалось достаточным заменить мое старое описание тачпада на новое, взятое с gentoo-шного описания synclient'а. Метод гугления еще никто не отменял.
Было вот что:

Section "InputDevice"
Driver "synaptics"
Identifier "TouchPad1"
Option "Device" "/dev/input/mouse1"
Option "Protocol" "auto-dev"
Option "LeftEdge" "1700"
Option "RightEdge" "5300"
Option "TopEdge" "1700"
Option "BottomEdge" "4200"
Option "FingerLow" "25"
Option "FingerHigh" "30"
Option "MaxTapTime" "180"
Option "MaxTapMove" "220"
Option "VertScrollDelta" "100"
Option "MinSpeed" "0.1"
Option "MaxSpeed" "0.3"
Option "AccelFactor" "0.01"
Option "AccelFactor" "0.0015"
Option "SHMConfig" "on"
EndSection

Стало вот так:

Section "InputDevice"
Identifier "TouchPad1"
Driver "synaptics"
Option "SendCoreEvents" "true"
Option "Device" "/dev/psaux"
Option "Protocol" "auto-dev"
Option "RightEdge" "5500" #This is a little bigger than the default narrowing the scroll region
Option "BottomEdge" "4500" #This is a little bigger than the default narrowing the scroll region
Option "RTCornerButton" "0" #disable Right Top corner "button"
Option "RBCornerButton" "0" #disable Right Bottom corner "button"
Option "SHMConfig" "on" #this allows configuration of the touchpad using qsynaptics, synclient, or what have you.
Option "VertEdgeScroll" "1"
Option "HorizEdgeScroll" "1"
Option "TapButton1" "1"
EndSection

Тачпад работает.

Ну и наконец первое.
Установить пакеты hal и hal-info, к сожалению, пришлось (все-таки в Slackware неудобно все пересобирать make world нет, да и понять зависимости можно только опытным путем). Однако после установки HAL'а я сразу же его отключил:

chmod -x /etc/rc.d/rc.hald

Полет нормальный.

26 августа 2008

actual vim from SlackBuild


Для сборки tgz-пакета из актуальной версии vim и доступных патчей я использую вот такой SlackBuild. Подразумевается, что патчи живут в директории patches рядом с исходниками.
Номер версии генерируется автоматически по номеру последнего патча.

#!/bin/sh
# Slackware build script for vim

PRGNAM=vim
VERSION=7.2
SRCDIR=vim72
ARCH=${ARCH:-i686}
BUILD=${BUILD:-1}
TAG=${TAG:-_evgeny}

CWD=$(pwd)
TMP=${TMP:-/tmp/$TAG}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}


if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
fi

set -e

rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2
tar xvf $CWD/$PRGNAM-$VERSION-extra.tar.gz
tar xvf $CWD/$PRGNAM-$VERSION-lang.tar.gz
cd $SRCDIR

# patches are assumed to live in $CWD/patches
# whether have patches - apply them and change version
PATCHES="$CWD/patches"
NEW_VERSION=$VERSION
if [ -d "$PATCHES" ]
then
for f in $PATCHES/$VERSION*
do
patch -p0 < $f
NEW_VERSION=$VERSION.`echo $f | sed -s "s/\(.*\)\([0-9]\{3\}\)/\2/g"`
done
echo "version changed to $NEW_VERSION due patches"
fi
VERSION=$NEW_VERSION

find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
-exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--mandir=/usr/man \
--build=$ARCH-slackware-linux \
--host=$ARCH-slackware-linux \
--with-x \
--enable-multibyte \
--enable-fontset \
--enable-gui=gtk2 \
--enable-pythoninterp \
--enable-tclinterp \
--disable-netbeans
make -j4
make install DESTDIR=$PKG

( cd $PKG/usr/man
rm -rf cat*
find . -type f -exec gzip -9 {} \;
for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done
)

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a README* $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
cat $CWD/slack-desc > $PKG/usr/doc/$PRGNAM-$VERSION/slack-desc

mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc

cd $PKG
chown -R root:root .
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz

25 декабря 2007

vim + backspace

На удаленной машине (какой-то RedHat) при нажатии backspace вместо удаления предыдущего символа выводился символ [^?]. Дело оказалось в несовпадении настроек tty. Посмотреть настройки текущего tty можно командой

tty -a
. На удаленной машине действие erase производилось по символу [^H]. Выполнил

stty erase ^?

и backspace стал удалять предыдущий символ.

15 ноября 2007

кое-что о ZFS

перевод ZFS Cheatsheet
оргинал
а это уже от Solaris'а - ZFS Administration Guide
здесь переводы этого руководства на разные языки

30 октября 2007

man micro_httpd.8

micro_httpd

НАЗВАНИЕ
micro_httpd - действительно маленький HTTP сервер

СИНТАКСИС
micro_httpd directory

ОПИСАНИЕ
micro_httpd это очень маленький HTTP сервер.
Он запускается из inetd, следовательно имеет низкую производительность.
Однако для сайтов с маленьким траффиком это не критично.
Он реализует все основные возможности HTTP сервера:

  • Отслеживание ".." в именах файлов.
  • Обычные mime-types.
  • Перенаправление по завершающему слэшу.
  • index.html
  • Показ содержимого директории.

Все это в 150-ти строках кода.

Для установки добавьте следующую строку в /etc/inetd.conf:

micro_http stream tcp nowait nobody /usr/local/sbin/micro_httpd micro_httpd dir

Убедитесь что путь к исполняемому файлу задан верно и измените "dir" на
директорию, в которой должен работать сервер.
Затем добавьте строку в /etc/services:

micro_http port/tcp #Micro HTTP server

Измените "port" на номер порта, на котором должен работать сервер - например 80 или 8000.
Затем перезапустите демон inted.

На некоторых системах в inetd задано ограничение на число порождаемых процессов -
если вы попробуете запустить службы inetd быстрее чем заданное число раз в минуту,
inetd посчитает это ошибкой или атакой и приостановит работу на несколько минут.
Если вы столкнулись с такой проблемой - посмотрите на сообщения от inetd в syslog.
Надо будет изменить такое ограничение.
К сожалению единого способа не существует.
Например на FreeBSD достаточно добавить "-R 10000" к строке запуска inetd.
На некоторых Linux-системах вы можете управлять этим через inetd.conf, изменив параметр
"nowait" на "nowait.10000"

Вы также можете использовать micro_httpd с HTTPS, запуская его через stunnel.
Скачайте и установите stunnel - на FreeBSD перейдите в
/usr/ports/security/stunnel и выполните "make cert ; make install".
Затем из-под суперпользователя запустите:

stunnel -p /usr/local/certs/stunnel.pem -d 443 -l /usr/local/sbin/micro_httpd -- micro_httpd dir

Убедитесь что пути к сертификату и исполняемому файлы заданы верно, и снова измените "dir"
на директорию, в которой будет работать сервер.

АВТОР
Copyright © 1999 by Jef Poskanzer <jef@mail.acme.com>. All rights reserved.

ПЕРЕВОД
30.10.2007 Евгений Ратников <ratnikov.ev@gmail.com>

интересное

интересная страничка с маленькими, но симпатишными програмками
ACME Labs Software
в том числе и micro_httpd, mini_httpd, thttpd