суббота, 25 июля 2009 г.

Использование в списка закачек firefox ассоциаций файлов kde4

Еще начиная с первого firefox у меня не открывались файлы по двойному клику в списке закачек.
также не работал "open containing folder".Раньше это особо не напрягало , так как нет был медленный и пользовался внешними качалками , типо kget где открытие файлов работало.
Сейчас при нормальном нете , закачиваю все через встроенную качалку firefox
Итак , если вдруг в вашем дистрибутиве(как в моем gentoo) firefox не открывает файлы или директории из списка закачек, то делаем следующее
1.Убеждаемся что стоит скрипт xdg-open:
which xdg-open должно вернуть путь, где лежит этот скрипт , например /usr/bin/xdg-open
Если у вас такого скрипта нет , то надоего поставить . У меня в gentoo он ставится пакетом xdg-utils
2.Идем в настройки firefox и выствавляем /usr/bin/xdg-open как приложения для типа "file"


Все, после этих манипуляций firefox ,будет использовать вашие системные ассоциации файлов, которые вы задавали системе. То есть теже zip,pdf,doc будут открываться тети тулами , которыми открываются например в dolphin.
Если у вас такого типа файла нет(как было у меня) , то
  1. создайте временно какого-нибудь нового пользователя ,например testuser.
  2. под ним запустите firefox и закройте.
  3. скопируйте файл mimeTypes.rdf у него из /home/testuser/.mozilla/firefox//mimeTypes.rdf в свой профайл firefox
После этих манипуляций и вас в настройках firefox появится соответствующий пункт.
Вообще , насколько я видел новые версия дистрибутивов типо ubuntu или calculate linux , то там должно работать из коробки. И описанная проблема специфична для самосборных дистров.
Хотя, читая в гугле суть проблема , настолкнулся на кучу постов от пользователей самых разных дистров , так что решение актуально:)

среда, 22 июля 2009 г.

Открытие файлов через bluetooth из blueman в kde4

Собственно для управления с помощью телефона(в качестве пульта ДУ) компом поставил blueman , так net-wireless/kdebluetooth4 у меня вообще не запускается , да и функционал у него не очень.
Само управление завелось сразу , но речь не об этом, так что если кому интересно , напишу отдельно :)
Начал смотреть другие настройки в blueman и обнуружил что оно умеет броузиться по файловой системе bluetooth устройства , однако делает это только через наутилус и его виртуальный протокол obex
Этого добра у меня нет , поэтому наваял неболшой скрипт для отрытия в kde4.
Тут следует сказат , что kde4 не поддерживает пока броузинг bluetooth девайсов из dolphin или konqueror как это было в kde3.Поэтому на сегодняшний день скрипт актулен.
Итак.Понадобится вначале поставить:
  1. установить net-wireless/blueman
  2. установить sys-fs/obexfs
  3. установить если нет konqueror (ибо в dolphin корректно не открывается по причинам от меня не зависящим)
  4. Скачать вот этот скрипт и положить его в /usr/local/bin
  5. Прописат в blueman-applet пут к скрипту как это показано у меня на рисунке
Все! По нажатию "Browse files on device" открывается konqueror.Файловая система доступна как на чтение так и на запись:


Собственно все , скрипт особо не заморачивается на проверках , однако все ошибки пишет в /var/log/messages
так что если у кого не заведется , присылайте вывод , исправлю

Запуск гуи приложений из консольной сессии по шедулеру

По работе я запускаю автоматические тесты
Эта статья будет про то , как настроить автоматический запукс GUI тестов , написанных на IBM Rational Functional Tester в windows 2003 server используя стандартный windows scheduler. Почему не в линукс ?? Да потому что там запускается и проблем нет :)))
Собственно на входе имеется скрипт который запускает GUI тесты и который успешно запускается руками в активной rpd или vpn сессии
Но что делать если билд собирается каждую ночь и тесты должны запускаться автоматом? Правильно - поместить скрипт в шедулер.
Но тут есть один нюанс - все таски шедулера запускаются в терминальной сессии под названием 'console'. которая не имеет гуи. И при запуске вы получите ошибку вида "it's detected that rft test started in terminal session.It's not possible to run GUI tests in terminal session"
Решением проблемы являются следующие шаги.
1. Залогиниться в win2003 по rpd в консольную сессию (mstsc /v:myserver /console)И проверить командой qwinsta, что сессия в id=0 приаттачилась не к консоли , а к сессии ремот десктопа

qwinsta
SESSIONNAME USERNAME ID STATE TYPE DEVICE
>rdp-tcp#126 administrator 0 Active rdpwd
rdp-tcp 65536 Listen rdpwd
console 3 Conn wdcon2

2. Закрыть сессию , при этом не делая logoff
После этого команда
qwinsta /server:yourserver , выполненная например в другого сервера , должна показать , что у вас на данном сервере , есть сессия с id=0 , но при этом пользователь отсоединен.


qwinsta /server:myserver
SESSIONNAME USERNAME ID STATE TYPE DEVICE
administrator 0 Disc rdpwd
rdp-tcp 65536 Listen rdpwd
console 3 Conn wdcon
Сейчас у нас есть GUI сессия отдельно и консольная сессия , в которой ранится шедулер отдельно , для успешного рана тестов эти две сессия надо совместить ,
3. Делается это добавлением в файл который запускает ваши тесты слудующей команды:
cmd /C /Q tscon 0 /dest:console
Собственно команда приаттачивает сессию в id=0 , в которой крутится GUI к консольной сессии , в которой запускаются сервисы.Это можно сравнить с тем . если бы кто-то залогинился по vpn на сервер и оставил сессию активной.
А еще , ну просто наболело , какой идиот в виндовс придумал сделать разделителем строк в выводе таких команд как "net use" и "qwinsta" пробел ??? вывод из-за этого не парсится адекватно при наличии пробелов в ячейках таблицы , а также пустах значениях , которые просто заполняются пробелами


Собственно все , остается только радоваться что в линуксе таких проблем нет :)

воскресенье, 12 июля 2009 г.

Забавная игрушка slimevolley. Ebuild для нее

После прочтения выпуска журнала Full circle magazine натолкнулся там на игрушкy под названием slimevolley (http://slime.tuxfamily.org/index.php)
Если кто не знает , это такой воллейбол на двоих. Еще в школе я игрался в аналогичную игрушку еще под досом
Выглядит основной экран вот так:
Играть могут двое людей , в том числе и по сети.Смысл в том чтобы головой отбивать мячик и перебрасывать его через сетку.Делать это можно под разными углами ,задействую стены , потолок.
Хоткеи на клавиши настраиваются.Поддерживаются различные скины,чтобы веселее было играть.
Игра хоть и нервная , но очень прикольная.

Заодно сделал для последней ее версии ebuild для gentoo под 64 битную архитектуру,
так как на официальном сайте есть только пакеты под архитектуру i386 для дебиана и бинарная сборка
Взять ebuild можно в gentoo bugzilla вот тут

Всем, кому понравится игрушка, приятной игры :)

воскресенье, 28 июня 2009 г.

Пользуетесь ли вы контексными меню в файл менеджерах

Хочу написать о такой классной и удобной фишке как контекстные меню в файл менеджере dolphin ,
просто и не знаю чтобы я без них делал :)
И , если лень все читать, вопрос : а пользуетесь ли ВЫ контексными меню , и какими ?? :)

Я например , нахожу удобными следующие меню:
  1. Архивация/разахривация файлов.Удобно архивированием либо разархивированием в один клик .При этом что дельфин сам определяет архив ли это , или не архив и автоматически показывает или скрывает пункты по меню по разархивированию
  2. Kim compress and resize - делает всевозможные операции с картинками, использую консольные утилиты для работы.Работает как на директории , так и на отдельно выделенные файлы.Пользуюсь им обычно перед заливкой фоток на пикасу. ebuild
  3. Root Actions. Пользуюсь когда налр изменить права на файл или отредактировать под рутом.Удобно. брать тут
  4. Fix mp3 russian tags - автоматически рекурсивно конвертирует все cp1251 таги в юникод.Выложил на kde-apps
  5. Pacpl convert - всевозможные операции конвертации с аудиофайлами.Актуально , ибо портативный плеер умеет только mp3 и wma .лежит тут
Преимущества таких меню:
1.Их очень легко писать и, как результат они созданы практически на куждую операцию.Можно скачать много меню например с http://kde-apps.org .Или написать самому.Меню для конвертации тагов я сделал за 10 минут
2.Они интегрированы с mime types kde , а соответственно пункт меню по разархивированию архвива будет показываться только на архиве , а конвертация картинки только на картинке

Вот несколько фото этих меню:








А вот небольшое видео , как эти меню выглядят , и насколько удобно ими пользоваться.Все буквально в один клик:

пятница, 26 июня 2009 г.

Приключения с vpn или Vpn clients survey

Понадобилось мне для работы поднять на домашнем компе и vpn , и не простой, а с поддержкой cisco ipsec.

Делов на раз, как говорится , сели и сделали.А на самом деле ..ну это потом.
Итак , принес с работы два профайл с нативного cisco vpn клиента
ibm – для коннекта в ibm
scnsoft - для конекта в outsorce компанию

Посерчился по портежу и нашел две чудо тулзы которые должны делать нужны мне коннект

  1. 1.net-misc/cisco-vpnclient-3des-4.8.02.0030 (и более старая версия тоже была опробована)
  2. 2.net-misc/vpnc-0.5.3
net-misc/cisco-vpnclient-3des
Первым на буке поселился нативный циско клиент.Поселился , установил свой ядерный модуль и занял положеное ему место в /opt

Профайлы к нему подошли что я принес с работы. Я только подложил в директорию /etc/opt/cisco-vpnclient/Profiles
запуск оказался тоже очень простым
vpnclient connect scnsoft user ******* pwd ********
Где scnsoft - это имя профайла

И вот я уже вижу свет в конце тунеля и как спускается ко мне с циски ангел весь в белом и с таблицей роутинга в руках и днс в зубах :))

рапортует клиент что подрубился , текст выводит правильный, вводишь "y" - и счасться казалось бы есть...



На выходе также:

  • создает сетевой интерфейс
  • правильно заполняет таблицу роутинга в нужную мне подсеть.

Вобщем ведет себя прям как профессиональный политик.Почему политик ? Да потому что пишет что подрубился и все выводит как надо, а нифига не работает

При попытке пинговать или зайти на любой адрес из подсети выдается ошибка что нет такого или еще хуже того

  • На ядре 2.6.28 просто не коннектится
  • на ядре 2.6.29 к тому же вешает всю систему.При этом индикатор винчестера злобно начинает мигать зеленым , а любимая музыка из колонок звучит как из мясорубки :)Так повесить систему надо еще уметь ! Но не зря же циско спецам такие деньги платят :)

Погуглив , нашел у людей аналогичные нерешенные проблемы http://bugs.gentoo.org/show_bug.cgi?id=234361

Думаю , связаны они с версей ядра..Поставив например 2.6.14 все запалит , но это не наш путь , правильно? Доунгрейд на 15 ядер вниз это было бы сильно :)Как сменить прокачанную во всем девушку на птушницу :)

версии клиента также погоды не сделали , пробовал
  • cisco-vpnclient-3des-4.8.01.0640.ebuild
  • cisco-vpnclient-3des-4.8.02.0030.ebuild

Итак , циско клиент идет в топку , с песней и всеми нужными при этом танцами

net-misc/kvpnc-0.9.1 (для QT4)

Если в кратце , такой глюкавой программы я еще не встречал.Она смогла сделать абсолютно НИЧЕГО.На каждую из запущенных операций я получал ошибки.А конкретно:

  1. Заимпортировать профайл из pcf формата
  2. Заимпортировать cisco сертификат
  3. Подсоединиться к заботливо созданному руками ее родному профайлу


Можно конечно долго искать причины , но на мой взгляд программа должна как минимум делать свою работа , те основные фичи.kvpnc этим меня не порадовал ,

Поэтому ЭТО гуи также идет в топку


net-misc/kvpnc-0.9.1

В первую очередь меня порадовала установка , всего 50 килобайт для такой нужной программы - уже неплохо :)


дальше потребовалось конвертировать мои профайлы и сертификаты из pcf в формат vpnc

Это просто: pcf2vpnc scnsoft.pcf scnsoft.conf


Дальше сертификат надо было конвертнуть из cisco crt формата в pem format , который понимает vpnc, это чуть сложнее через промежуточный формат.Для этого должен стоять openssl пакет:

openssl x509 -in scnsoft.crt -out scnsoft.der -outform DER

openssl x509 -in scnsoft.der -inform DER -out scnsoft.pem -outform PEM


на выходе получается профайл и сертификат.Аналогичные действия я сделал для профайла IBM

То , что получилось я сложил в /etc/vpnc

Дальше я вписал пользователя и пароль в профайл и дело сделано.

Собственно , вот сами профайлы.Они разные , с разным типом авторизации:

##IBM


IPSec ID xxxxxxxxx


IPSec gateway xx.xx.xx.xx


IPSec secret xxxxxxxxxxxx





Xauth username xxxxxxxxxxx


Xauth password xxxxxxxxxxxx


IKE Authmode psk


DPD idle timeout (our side) 0





##Scnsoft


IPSec ID xxxxxxxxxxxx


IPSec gateway xxxxxxxxxxxx


IPSec secret xxxxxxxxxxxxx


Enable Single DES


Xauth username xxxxxxxxxxx


Xauth password xxxxxxxxxxxxxx


CA-File /etc/vpnc/scnsoft.pem


IKE Authmode hybrid



Собсвенно сам запуск ,

Проафайл IBM у меня запустился прекрасно ,

а вот scnsoft нет.выдает такую ошибку:



Connect Banner:


| WELCOME TO SCIENCESOFT NETWORK!


|


vpnc: quick mode response rejected: (ISAKMP_N_INVALID_MESSAGE_ID)(9)


this means the concentrator did not like what we had to offer.


Possible reasons are:


* concentrator configured to require a firewall


this locks out even Cisco clients on any platform expect windows


which is an obvious security improvment. There is no workaround (yet).


* concentrator configured to require IP compression


this is not yet supported by vpnc.


Note: the Cisco Concentrator Documentation recommends against using


compression, expect on low-bandwith (read: ISDN) links, because it


uses much CPU-resources on the concentrator



Вроде и аутентификацию прошел и конект банер показал , а счастья нет :(

В итоге получается что ipsec с psk работает отлично в ibm , а hybrid ipsec в scnsoft нет


Я знаю что у многих все работает , и работает как говорится испокон веков , но данный конкретный случай показывает что есть еще над чем поработать в плане поддержки оборудования испольующего cisco_ipsec

четверг, 11 июня 2009 г.

Загадочное про perl модули а также про то как круто учиться :)

Недавно я выкладывал пост как создавать репорты в ексель на перле
Для этого я написал отдельный перл модуль generateBuildReport.pm
Я не ахти какой перл программер , как говорится , только учусь , поэтому получилось что нашел я у себя критическую ошибку)
При включении моего модуля в код другого перл скрипта

use generateBuildReport.pm;


У меня в этом скрипте начинает некорректно работать функция system в ниже приведенной функции.Perl интерпретатор просто крашится и вылетает при ее выполнении.Надо сказать что в IBM clearquest perl не стандартный, а скомпилированный IBM и называется он cqperl.Возможно в этом дело

#executes selected manual test script in Rational manual tester
sub runRationalManualTester {
my ($script_name) = @_;
logger("\nRun the Rational manual tester");
chdir($manualTesterPath);
system( $rmt_binary. " -x " . "\"" . $script_name . "\"" . " -" );
}

Местный гуру посоветовал не юзать модули , если ты сам не гуру :)
В итого переписал , чтобы использовать репорт как обычный скрипт со входными параметрами
А вот и код generateBuildReport.pl

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

#create an array of build hash objects.Every build object contains hash with testcases were executed on this build
sub getTestCasesByBuild {
#list of tests which are executed on every build
my @tests = @{ getTestCasesList(@configuration) };
#list of available builds
my @builds = @{ getAutomatedBuilds() };
foreach my $build (@builds) {
logger( "Create testcases list for the build " . $build->{'name'}, true );
#list of testcases which were executed or not executed on this build
my @testcasesList;

foreach my $test (@tests) {
my $verdictRec = getLatestVerdict( $test->{'id'},
$Iteration, $build->{'id'} );
my %tc = %$test;
#$test->{'result'} = $verdictRec->{'result'};
#$test->{'resultId'} = $verdictRec->{'dbid'};
$tc{'result'} = $verdictRec->{'result'};
$tc{'resultId'} = $verdictRec->{'dbid'};
push (@testcasesList, \%tc);
#push (@testcasesList, \%test);
}
push (@{$build->{'tests'}}, @testcasesList);
}
return \@builds;
}
Опять же , весь код доступен тут :generateBuildReport.pl