About Me

My photo
I know the last digit of PI

Friday, January 09, 2009

Red5 service за Линукс

Red5 е едно много хубаво сървърче за флаш. Инсталацията му под Windows е елементарна - има си setup.exe, което прави всичко. Под линукс обаче нещата не са толкова лесни - разархивираш tar файл, слагаш на необходимото място, инсталираш Sun-ска Java и т.н. Има доста форуми по въпроса. Единствения проблем е, ако трябва Red5 да се пуска като service. За Fedora 10 това се прави по следния начин:
1) добавя се един файл /etc/init.d/red5
2) chmod a+rx /etc/init.d/red5
3) съдържанието му е:



#! /bin/sh
#
# red5
#
# chkconfig: - 80 20
#
# Author: Kiril Arabadzhiyski
#
### BEGIN INIT INFO
# Provides: red5
# Required-Start: $network $syslog
# Required-Stop: $network $syslog
# Default-Start:
# Default-Stop:
# Description: Red5 - Open Source Flash Server
# Short-Description: start and stop red5
### END INIT INFO
#
# File location: /etc/init.d/red5
#
#
RED5_DIR=/usr/red5
test -x $RED5_DIR/red5.sh || exit 5

RED5_USER=red5
RED5_LOG_DIR=/var/log/red5

STDERR_LOG=$RED5_LOG_DIR/stderr.log
STDOUT_LOG=$RED5_LOG_DIR/stdout.log

if [ -r /lib/lsb/init-functions ]; then
. /lib/lsb/init-functions
else
exit 1
fi

function startCmdExec() {
su -s /bin/bash -c "${RED5_DIR}/red5.sh >> ${STDOUT_LOG} 2>> ${STDERR_LOG} &" ${RED5_USER}
}

function stopCmdExec() {
su -s /bin/bash -c "${RED5_DIR}/red5-shutdown.sh > /dev/null 2> /dev/null &" ${RED5_USER}
}

function start() {
echo -n "Starting Red5:"
cd $RED5_DIR

pid="$(pgrep -u ${RED5_USER} -G ${RED5_USER} java)"
if [ -z "$pid" ]; then
startCmdExec
sleep 2
pid="$(pgrep -u ${RED5_USER} -G ${RED5_USER} java)"
fi

if [ -n "$pid" ]; then
log_success_msg
else
log_failure_msg
fi
}



function stop() {
echo -n "Stopping Red5:"
echo -n " "
cd $RED5_DIR
stopCmdExec
sleep 5
pid="$(pgrep -u ${RED5_USER} -G ${RED5_USER} java)"
if [ -z "$pid" ]; then
log_success_msg
else
log_failure_msg
fi
}

function killIt() {
echo -n "Killing Red5:"
echo -n " "
su -s /bin/bash -c "killall -q -u ${RED5_USER} java" ${RED5_USER}
sleep 2
pid="$(pgrep -u ${RED5_USER} -G ${RED5_USER} java)"
if [ -z "$pid" ]; then
log_success_msg
else
log_failure_msg
fi
}

function status() {
pid="$(pgrep -u ${RED5_USER} -G ${RED5_USER} java)"
if [ -n "$pid" ]; then
echo "Red5 (pid ${pid}) is running..."
RETVAL="0"
else
echo "Red5 is stopped"
fi
}

function restart() {
stop
pid="$(pgrep -u ${RED5_USER} -G ${RED5_USER} java)"
if [ -n "$pid" ]; then
killIt
fi
start
}

case "$1" in
start)
start
;;
stop)
stop
;;
kill)
killIt
;;
restart)
restart
;;
status)
status
;;
esac



4) chkconfig --add red5
5) chkconfig red5 on
6) service red5 start

Ха честито!

Monday, March 03, 2008

Nero Direct show filters

Както всички знаем Nero беше една много добра програмка за печене на дискове. Клоючовата дума тук е беше. Незнам какво си мислят момчетата от Nero AG, но тази програмка стана твърде enterprise. Имат включени разни DirectShow филтри който създават един милион проблеми. Ето и един лесен начин да бъдат изключени - един batch файл който трябва да бъде стартиран.

@echo Unregistering nero burning rom filters
cd \Program Files\Common Files\Ahead\DSFilter
regsvr32 /u NDParser.ax
regsvr32 /u NeAudio.ax
regsvr32 /u NeFileSrc.ax
regsvr32 /u NeQTDec.ax
regsvr32 /u NeRender.ax
regsvr32 /u NeVideo.ax

Monday, February 18, 2008

Windows service

Незнам дали на някого му се е налагало да ползва windows services или още повече да подава на съответния сървис command line parameters, но това си е голяма главоблъсканица.
Интересното е, че има някакъв key HKLM\SYSTEM\CurrentControlSet\Services\service_name\Parameters който не е ясно за какво е..но определено не е за command line параметрите. Истинските command line параметрите се подават от

HKLM\SYSTEM\CurrentControlSet\Services\service_name и ImagePath = "path_to_exe command_line_parameters "

Най-добрия пример е:
HKLM\SYSTEM\CurrentControlSet\Services\EventSystem

За да се изтестват параметрите може да се ползва Service MMC GUI-to, като се щтракне с десния бутон върху сървиса и се появява едно прозорче и отдолу има "Start parameters". Те обаче са само за текущото пускане, и не се запазват.

Monday, July 30, 2007

BEA WebLogic 10 под Fedora

Известно време се мъчих да подкарам Tomcat под Fedora 7..той си работеше ма аз нещо барнах и сега трябва бая да задълбая, за да го оправя. Пък и нещо не ми се занимава :-) Затова реших радикално проблема... взех че качих BEA WebLogic. Честно казано бях потресен колко лесно стана всичко... свалих един 700Mb-тов bin файл и само го пуснах... оправих директорията в която да се инталира и всичко мина като по-вода (next, next,next,next, finish)
Въпреки, че BEA имат официален съпорт само за RedHat linux, явно нямат проблеми продуктите им да работят и под Fedora 7 :-) Още разучавам точно какво инсталирах, ама май ще бъде интересно. Чудя се има ли някаква база отдолу, или е само jee server... нещо ме мързи да чета, както и да е, ще го разгледам по-подробно тия дни, че трябва да пиша и дипломна работа. Може би ще го ползвам за да ми хоства jsp-тата :-)
Направо съм удивен, колко лесно го инсталирах.. бях се подготвил за няколко часова борба с хиляда скрипт хака и разни страни exception-и - все пак бях изтеглил версия за Redhat, а не за Fedora... обаче се оказа че съм приключил за 10 мин. :-) Много се кефя!

Wednesday, June 06, 2007

Fedora 7

Ми освен да попиша малко за моя досег до новата Fedora 7. Общо взето бях може би един от първите които си я свалиха и качиха....даже БГ мирорите още я нямаха та я свалях от някви мирори в Европа...бая чакане си падна. Първите ми впечатления бяха: брех много fancy шаренийка ала бала... Инсталирането беше супер лесно всичко си детектна ок. След това гледам какъв софтуерм има.... и понеже нали съм си лаком реших да инсталирам всичко де що има като цъкалка :-) Е почахак около 2 часа да се download-не всичко за да получа великия всичко обяснвящ надпи...package xxxxx is not verified... Уау! Нали уж от официялния сайт инсталирам...Я един рестарт и да пробвам пак...все пак може да има някъв скрипт който не се е пуснал след първия рестарт веднага след инсталацията...знам ли.. Още 2 часа и пак същата грешка. Явно нещо има...деселектирам проблемния пакет и си мисля това сигурно е нещо недогледано на всеки му се случва....още 2 часа и бамм...същата грешка със друг пакет! Брех м*** му. Нали уж 4 фази на тестване и незнам си кво още. Тоя път не ми се чакаше пак 2 часа за това малко по-малко селектирани пакети и да пробваме пак...почнаха да гърмят един по един ...на 10тия се отказах. Гоогълнах половин час и гледам има няква опция на yum нещо като pgp check или нещо такова...явно тука се крие разковничето...сложих го на 0 в кофигурацията на yum и поне взеха че се инсталираха част от пакетите. Викам си щом на тест пц-то се инстална, да взема да пробвам и на лаптопа...той и е с 6-тицата да взема да го ъпгрейдна...да ама не.....детектна старта инсталация почна да анализира пакетите и каза "package %s ......" debug / restart....еми явно ще си остана със 6тицата.... а пък F8 трябва да има повечко тестване !

Wednesday, May 09, 2007

В дебрите на DirectShow или как да ползваме ISampleGrabber

Днеска за пореден път се сблъсках с добре структурираната и позотворна информация за DirectShow. Целта беше да ползвам ISampleGrabber филтърът за да направя няколко картинки от филмче. Example-и има много за това... обаче тайната как да ги компилираш я няма абсолютно никъде. Проблема е, че освен стандартното PlatformSDK трябва и DirectX SDK заради един header файл. След това обаче се набозват някакви недекларирани макроси и става яко мазало. Грешката която се получава е:

...mmstream.h(332) : error C2061: syntax error : identifier '__RPC__deref_out_opt'"
...mmstream.h(335) : error C2061: syntax error : identifier '__RPC__out'
...mmstream.h(339) : error C2061: syntax error : identifier '__RPC__in_opt'

и така още около 102 пъти :-)

В крайна сметка печелившата комбинация от include-и е следната:

rpcsal.h
dxtrans.h
qedit.h


Първият rpcsal.h е най-важен за тези макроси.

Wednesday, December 27, 2006

Защо Windows Explorer-а зависва

Мда учудващо но факт често ми се случваше да си отворя един explorer и да чакам..чакам..чакам.. докато сепокаже великия прозорец (или поне да се рефрешне). Накрая реших да погледна к'во става, вирус ли, троянец ли кво има все пак... Пуснах си един ethereal и що да видя :-) При всяко отваряне на explorer прозорец се праща по един SYN пакет към порт 1666. Поразгледах малко какви програмки имам инсталирани и по-точно тия които са в контекстното меню (или file extension-ите) и гледам имам едно perforce..което има add / sync и бла бла .. все необходими неща които иначе не мога да достъпна през Windows GUI клиента му :-) Ами решението беше:
regsvr32 /u p4exp
и всичко заспа... сега експлорера е бърз както никога :-)

Sunday, December 17, 2006

Microsoft Visual Studio freezes on "Add New Class" wizard

Мда...Понякога и най-хубавите неща зависват...какво да говорим за останалите :-) Както и да е... Проблема възниква когато във Visual Studio-to на един проект дадеш Add new class и се почва едно чакане... В краина сметка wizarda се появява но със доста закъснение. Решението на проблема е описано ето тук:
http://support.microsoft.com/kb/290398

На кратко проблематиката е че MDM s CLSID {0C0A3666-30C9-11D0-8F20-00805F2CD064} няма необходимите permission-и. Решението:
1) ot cmd-то пишете dcomcnfg.exe
2) отваряте DCOM обектите и намирате MDM (ако го няма пак от конзолата mdm.exe /regserver)
3) отваряте properties и Security tab-а click-вате на Use custom permission (навсякъде където може).
4) Добавяте следните user-и
Interactive
System
Administrators
IWAM_<ComputerName>

Thursday, November 30, 2006

Пускане на Remote desktop на remote машина

Хмм ами незнам ама е кофти да се прецакаш и да си загубиш един час да настройваш firewall-i, рутери ала бала портокала и накрая да отидеш на работа, за да установиш, че си забравил да пуснеш онова мъничко гадно checkbox-че Allow remote desktop connection :-)

Добре, че микро-софт са помислили за всичко:)
От конзолата сетваме remote-ното registry
reg add HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server /v /t REG_DWORD /d 0 /f
И вече всички са щастливи :-)

Saturday, October 28, 2006

Mounting Windows shares under Linux

Напоследък много често ми се налагаше да трябва да ползвам windows файлове под Linux. Има една много интересна програмка smbclient която позволява да достъпвам Windows share-овете. Да ама тя е подобна на ftp клиент .. put , get, put, get ... оо да и mput *, mget *... и така докато ти се отели вола. За това още малко research и се откри едно прекрасно решение smbfs
mount -t smbfs -o username=laino //my_windows_server/my_share /mnt

Всичко е прекрасно, докато не реших да си инсталирам новата Fedora Core 6 - опа няма smbfs. Още малко research и излезе следното:
mount -t cifs -o username=laino //my_windows_server/my_share /mnt

Накрая не трябва да се забравя да се umount -не share-a. Сега трябва да видя как да umout-на share-ове които вече не са активни...получава се едно хубаво зависване когато спреш windowsa или дръпнеш мрежовия кабел... еми явно няма перфектен софтуер все пак.

Saturday, August 05, 2006

Windows look & fell under linux

Ами ето малко настройки за Linux, за хора които са привикнали на Windows shortcuts -ите,

To assign WIN+D to show the desktop:
1) SUPER_L should be assigned by default in FC4
2) start "gconf-editor" from terminal
3) Choose /apps/metacity/global_keybidings/show_desktop
and enter "<mod4>D"

To assign WIN+L to lock the workstation:
1) SUPER_L should be assigned by default in FC4
2) start "gconf-editor" from terminal
3) Choose /apps/metacity/keybinding_commands/commmand_2 (3,4,...)
4) Enter value "xscreensaver-command -lock"
5) Choose /apps/metacity/global_keybidings/run_command_2 (3,4...)
6) Enter value "
<mod4>L"

To assign WIN+R to run command:
1) SUPER_L should be assigned by default in FC4
2) start "gconf-editor" from terminal
3) Choose /apps/metacity/global_keybidings/panel_run_dialog
4) Enter value "
<mod4>R"
5) Create a new file called "cmd" in /bin folder
6) Add following text to it
#!/bin/bash
/usr/bin/gnome-terminal
7) change the atrributes "chmod+x /bin/cmd"

Saturday, June 24, 2006

Wireless под Linux

Ами имам си аз една USB Wireless пишка която не работеше - Belkin 54g Wireless USB Adapter (rt2500, rt2570). Трябваше да я подкарам под Linux. Първо на официалния сайт нямаше никакви драйвери, за тва след мноооого google-ване открих че има едно нещо наречено ndiswrapper, което позволява пускането на Windows Network драйвери под Linux. Инсталацията е супер лесна, сваляш, make, make install, и имаш едно ndiswrapper което може да инсталира Windows-ските драйвери. Най-хубавото е че тези които вървят към CD-то си работят. И така направих следното:

  1. ndiswrapper -i /mnt/cdrom/drivers/rt2500usb.inf което ми инсталира драйверите във /etc/ndiswrapper/..., след това проверка дали всичко е качено ndiswrapper -l, проверка дали всичко е наред
  2. ndiswrapper -m Това добави и alias във /etc/modprobe.conf
  3. конфигуриране на Wirelless настройките
    iwlist wlan0 scan
    iwconfig wlan0 essid ESSID_OF_THE_ACCESS_POINT
    iwconfig wlan0 mode Managed
    iwconfig wlan0 key restricted XXXXXXX
    ifconfig wlan0 up
    dhclient wlan0
Цялото това инфо го има на http://ndiswrapper.sourceforge.net/mediawiki/index.php/Installation

Всичко тръгна като по-вода.. да ама открих че има едни готини настройки с които можеш да слухтиш по мрежата за Beam сигнали ала бала...iwconfig wlan0 set mode Monitor, което обаче не работи с ndiswrapper-a.
И така отново на изходна позиция, още малко google-ване и излиза едно rt2500 driver for linux Инсталирах го както си пишеше в README-то и всичко тръгна. (make, make install, добавяне на alias в /etc/modprobe.conf). Разликата спрямо ndiswrapper-а е че device-а се казва rausb0 а не wlan0.

След това автоматизирах пускането на rausb0. За целта се добавя един файл ifcfg-rausb0 в /etc/sysconfig/network-scripts/ifcfg-rausb0 който съдържа следното:
DEVICE='rausb0'
ONBOOT='no'
BOOTPROTO='dhcp'
ESSID='XXXXXXX'
MODE='Managed'
KEY='XXXXXX'
И вече можех да си ползвам ifup rausb0 и ifdown rausb0
Всичко това може да се види на http://rt2x00.serialmonkey.com/wiki/index.php/Main_Page

В допълнение една готина програмка за Wireless сканиране и т.н. http://www.kismetwireless.net/


Моят втори блог :-) Ами на кратко тука ще поствам някви лайна от сорта как съм си подкара мишката и т.н.

Иначе проверявайте ето тука : http://kir0.blogspot.com/