За културата на мисленето, свободата и софтуера
Владимир | 07/26/2010Една интересна статия на Николай Ференски.
Дава доста храна за размисъл
Една интересна статия на Николай Ференски.
Дава доста храна за размисъл
От известно количество време съм собственик на Nokia N900 MID. В цялото словосъчетание като че ли Multimedia Internet Device е важната част, но не отразява дори с малко какво може устройството.
Накратко това е по скоро таблет със малко GSM чарколяцо отколкото телефон с браузър. За бонус играчката е доста отворена (по подразбиране си идва със шел към нея), базирана е на прилични стандарти и като цяло е готина занимавка.

Устройство: Nokia N900
Хардуер: ARM A8 Cortex SOC, 256MB RAM, 32GB Internal Flash, 3,5 inch 800×480 touchscreen дисплей, пълна qwerty клавиатура
Софтуер: Maemo 5, частично базиран на дебиан (кодово име Fremantle) – не не е Freemantle, и аз го бърках доста.
Възможности: Сърфиране из нета, пощенски клиент, таблет, мултимедийна станция (да поддържа и UPnP и DLNA), четене на документи, чат клиент, фотоапарат, бърза редакция на прости документи, календар и даже телефон. Поглеждайки всичката функционалност достъпна в устройството човек добива чувството че телефона е по скоро сложен защото са има място на платката отколкото че специално са си мислили да го слагат (но пък всеки може да си мисли каквото си иска). Едно от най приятните неща свързани с тази играчка е факта че можете съвсем спокойно да си инсталирате доста прилични количества софтуер, без почти никакъв риск. Ако официалният или community based софтуер не ви достига никой не ви спира да седнете и да си хакнете нещо което на вас ви трябва/харесва. Nokia предоставят всички необходими инструменти за разработка – включително виртуална машина със всичкия необходим софтуер и емулатор в който да си тествате софтуера който пишете.
Днес ще ви покажа как можете да използвате USB кабела за да се свържете със вашия телефон посредством SSH, да му дадете малко Internet (защото наоколо няма WI-FI а не ви се плаща на българските оператори кожодери) и как да убедите стандартните приложения че има интернет. Платформата върху която ще реализираме цялото упражнение (освен Телефона/Таблета/Играчката) е Ubuntu 9.04 (Jaunty) и Ubuntu 9.10 (Karmic). Все пак разполагам само с това под ръка.
Изхождаме от предположението че имате Wi-Fi под ръка. Не че иначе не е постижимо но ще отнеме повечко време и ще е доста неудобно. Въпреки че клавиатурата е удобна за писане, не е най-добрата когато става въпрос за специални знаци и *nix команди.
За да си свършим задачките ще ни е необходим малко софтуер. В случая ще ни е необходим root достъп за да променим няколко системни файла. Цялата операция може да се осъществи от самото устройство, но смятам че е по удобно да я свършите с помощта на малко по голяма и удобна клавиатура като тази на вашият компютър/лаптоп.
За целта на занятието ще ни е необходим следният софтуер:
За начало може да инсталирате само SSH сървъра и после останалата част ако прецените че ви е нужна. За да инсталирате SSH сървър е необходимо да добавите хранилището extras тестинг през нормалният пакетен мениджър на Maemo. Докато сте там може да си инсталирате и rootsh – полезен е. В процеса на инсталация ще бъдете попитани да си въведете новата root парола (без нея няма как да се логнете на играчката).
След като инсталирате софтуера пробвайте да се закачите :) трябва да се случи и вие вече сте root с абсолютни права върху устройството. Бъдете внимателни и не правете нищо лудо (като rm -rf /)
Все пак за да можем да имаме мрежа тя трябва да е конфигурирана и от двете страни на кабела. Сега след като вече сте се логнали в устройството е време да се захващаме за работа.
Отворете /etc/network/interfaces
Там трябва да откриете нещо подобно на:
auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp auto usb0 iface usb0 inet static address 192.168.2.15 netmask 255.255.255.0 gateway 192.168.2.14
Ако не изглежда така постарайте се и нека заприлича. Важното в случая са редовете след auto usb0 адреса си го изберете както ви подхожда но го запомнете. Адреса в реда с gateway ще ни е необходим малко по късно за другият край на мрежата. Това е една добра конфигурация която ще разширим малко по късно.
Сега е време да изпробвате дали сте направили всичко правилно :)
ifup usb0 ifconfig
Ако в изхода от ifconfig идите нещо подобно на:
usb0 Link encap:Ethernet HWaddr FE:84:91:74:71:F7
inet addr:192.168.2.15 Bcast:192.168.2.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3373 errors:0 dropped:0 overruns:0 frame:0
TX packets:7065 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:168768 (164.8 KiB) TX bytes:2344721 (2.2 MiB)
Всичко работи както би трябвало.
След като сте конфигурирали единият край на мрежата време е да конфигурирате и другия :) тоест вашият компютър лаптоп. Последно време започнах да оценявам удобствата на Gnome Network Manager така че ще покажа как се случват работите там.
Първата стъпка е да включите телефона си посредством USB кабела към вашата машина. На въпроса в какъв режим да се представя пред вашият компютър изберете PC-Suite mode. След кратко мислене във NetworkManager-а ще се появят две нови устройства. Жична мрежа и GSM модем. Би трябвало да изглежда по подобен начин. (извинявам се но вече при мен е конфигурирано)

Време е да изберете опцията за редактиране на връзки, да изберете вашата връзка (най-вероятно е Auto USB0) и да я конфигурирате, както е показано в следващите две снимки:


За да проверим дали всичко е наред изключете кабела, включете го отново и изберете пак PC-Suite mode. Едно нещо за което трябва да внимавате е да не променяте мак адреса който е открит от Network Manager-a след малко ще обясним на телефона как да използва винаги него.
Сега вече трябва да можете да пингнете вашият телефон закачен през кабелчето :)
Сега след като вече имаме връзка между компютъра и телефона базирана на USB кабела време е да обучим телефона да не променя тази връзка и да я активира/спира автоматично всеки път когато изберете PC-Suite mode. За целта са необходими няколко стъпки:
Това е необходимо поради причината че при всеки рестарт на телефона мак адреса на usb интерфейса се генерира на ново. И като цяло е винаги различен. Приучаването се състои в дефинирането на опция за кернел модула който се грижи за този мрежов интерфейс (g_nokia). Логнете се като root на вашият телефон (това звучи яко) и изпълнете
echo > "options g_nokia host_addr=C6:EB:3E:B7:65:D7" > /etc/modprobe.d/g_nokia
Или всеки един мак адрес който ви харесва (например: C0:FF:EE:C0:FF:EE или 01:23:45:67:89:AB). Ако сменяте мак адреса ще се наложи да рестартирате телефона за да прихване новата настройка.
При избиране на PC-Suite mode от менюто при включване се изпълнява скрипта /usr/sbin/pcsuite-enable.sh. За да активираме автоматично интерфейса трябва да добавим в края му необходимите ни команди. Намерете секцията:
kill -USR1 $SYNCD_PID logger "$0: sent SIGUSR1 to syncd" exit 0
и я заменете с:
kill -USR1 $SYNCD_PID logger "$0: sent SIGUSR1 to syncd" ifup usb0 echo "nameserver 8.8.8.8" >> /etc/resolv.conf echo "nameserver 8.8.4.4" >> /etc/resolv.conf exit 0
Реално добавяме 3 команди:
За да сме сигурни че телефонът няма да сътвори глупости от типа на използване на GPRS за разни глупости ще подменим пътят по подразбиране и gateway-а. За целта добавете в дефиницията за интерфейса в /etc/network/interfaces
up route del default up route add default gw 192.168.2.14
При изваждане на USB кабела автоматично се изпълнява скрипта /usr/sbin/pcsuite-disable.sh където и ще добавим нашите инструкции за автоматично спиране на интерфейса.
Намерете секцията:
logger "$0: do nothing to pass USB certs" exit 0
и я заменете с:
logger "$0: do nothing to pass USB certs" ifdown usb0 echo "nameserver 127.0.0.1" > /etc/resolv.conf exit 0
Както е видно спираме интерфейса и възстановяваме статуквото с DNS сървърите. След тези операции вече при включване на usb кабела и избиране на PC-Suite mode автоматично ще се вдига интерфейс с настройки да взема интернет от машината за която е закачен, но за съжаление машината за която е закачен все още не знае как да му даде интернет.
Колкото и да улеснява Network Manager-а при някои операции (видяхте колко бързо се справи с откриването и разпознаването на телефона) все пак той крие и доста недостатъци. Като факта че част от стандартните парадигми с които е свикнал един системен администратор не работят както се очаква. Стандартният администратор би дефинирал usb0 интерфейса по начин подобен на този за телефонната страна със команди във up клаузата които да пуснат ip_forward и да добавят необходимите iptables правила и ще установи че нещо не се получава … За да ви спестя заигравките оставаме изцяло в свена на Network Manager-a. Той поддържа възможност за изпълняване на скриптове при определени събития (като включване/изключване на интерфейс и др.)
Създайте следният файл: /etc/NetworkManager/dispatcher.d/99nokia-n900-routing със следното съдържание:
#!/bin/sh -e
# Script to dispatch NetworkManager events
#
# Runs when NetworkManager fiddles with interfaces.
# Author vvitkov
# ver: 0.1
# based on NM standard dispatcher for ifupdown
if [ -z "$1" ]; then
echo "$0: called with no interface" 1>&2
exit 1;
fi
# Fake ifupdown environment
export IFACE="$1"
export LOGICAL="$1"
export ADDRFAM="NetworkManager"
export METHOD="NetworkManager"
export VERBOSITY="0"
# Run the right scripts
case "$2" in
up)
export MODE="start"
export PHASE="up"
if [ $IFACE = 'usb0' ] ; then
iptables -A POSTROUTING -t nat -s 192.168.2.15/32 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
fi
;;
down)
export MODE="stop"
export PHASE="down"
if [ $IFACE = 'usb0' ] ; then
iptables -D POSTROUTING -t nat -s 192.168.2.15/32 -j MASQUERADE
echo 0 > /proc/sys/net/ipv4/ip_forward
fi
;;
pre-up)
export MODE="start"
export PHASE="pre-up"
;;
post-down)
export MODE="stop"
export PHASE="post-down"
;;
*)
echo "$0: called with unknown action \`$2'" 1>&2
exit 1
;;
esac
Изпълнете отново магическите действия изключване на кабел, включване на кабел, избор на PC-Suite mode и кратко изчакване. Вече от вашият телефон съвсем спокойно трябва да можете да пингвате разни машини в интернет като примерно www.google.com.
Въпреки че телефона има интернет приложенията които идват с него все още не знаят за това. Те разчитат на D-Bus да ги информира за подобни събития и докато не бъдат информирани си мислят че нет няма. Трябва да коригираме това :)
За целта ще добавим нова фиктивна конекция която да активираме при вдигането на usb0 интерфейса на телефонът ни. За да можем да добавим фиктивната конекция ни е необходим пакета libicd-network-null който се намира в extras-devel хранилището за пакети. Тъй като ще използваме това хранилище само за един пакет не е нужно да го добавяме в стандартният пакетен мениджър.
Вече имаме необходимата инфраструктура за създаване на фиктивна мрежова връзка. Изпълнете следното за да я добавите и активирате (на телефона):
gconftool-2 -s -t string /system/osso/connectivity/IAP/DUMMY/type DUMMY gconftool-2 -s -t string /system/osso/connectivity/IAP/DUMMY/name "USBnet" gconftool-2 -s -t string /system/osso/connectivity/IAP/DUMMY/autoconnect false killall icd2
С това дефинираме фиктивна връзка с вътрешен идентификатор DUMMY и име USBnet.
Единственото което остава да направим е да информирам D-Bus подсистемата при активирането на интерфейса да включи тази връзка и съответно при спирането на интерфейса да я изключи. Това се постига с добавянето на следните 2 реда към /etc/network/interfaces в секцията за usb0
up run-standalone.sh dbus-send --type=method_call --system --dest=com.nokia.icd /com/nokia/icd com.nokia.icd.connect string:DUMMY uint32:0 down run-standalone.sh dbus-send --system --dest=com.nokia.icd /com/nokia/icd_ui com.nokia.icd_ui.disconnect boolean:true
Вече вашият телефон може да разполага с интернет посредством usb кабел. Тествайте сами и се убедете.
Част от информацията е взаимствана от: http://wiki.maemo.org/N900_USB_networking
Ако имате въпроси питайте
Редакция: Променен е начина на изпълнение за вдигане на USB интерфейса за да позволи модулно изпълнение на модификации
Познайте каква е грешката когато синквате мирор на нещо да ползвате следното нещо
/usr/bin/rsync -avuC –delay-updates –delete –delete-after –timeout=300
За позналия дъвка с косъм :)
Също така приемам предложения какви точно опции да набода на rsync-а
Това трябва да е някаква грозна шега обаче за съжаление е истина. В почти цяла софия не можахме да открием джин савой. Не говорим за големи количества дори една бутилка нямаше. Започваме от кауфланд … никакъв, продължаване в била … никакъв, разходка до метро … НЯМА БЕ нямаше дори една (а търсехме малко повече от една де), в супера пред дома … няма, в магазинчето за алкохол дето е денонощно до нас … няма. Е ако някой знае какво точно се случва ще се радвам да ме просветли
Е можеше да се очаква все пак го купиха (все цяло със SUN) ама някак си не е приятно ей така както си обновяваш репото и изведнъж да ти изпищи че някакъв ключ се е сменил и не можем да проверим дали новото репо е валидно. И не само това ами и на всичкото отгоре цялото споменаване за смяната е едно кратко изречение под чертата на страницата с описание на линукските репота. Можеха поне няква мизерна новина да пуснат тяхната кожа.
QNAP’s TS-219 Pro е високо производителен NAS сървър поддържащ до 2 SATA I/II Диска с общ капацитет до 4TB. Днес разглежданият NAS сървър е един от най-добрите в своят клас. Характеризира се най-пълно с изречението „Многофункционално мрежово устройство за съхранение на данни в малък офис или у дома и още нещо..“
High Performance 2-Bay Turbo NAS Server
Model: TS-219 Pro
Всяко едно устройство първично се характеризира с вложените в него компоненти и качество на изработката.
С удоволствие мога да кажа, че QNAP са свършили страхотна работа. Не само изработката на устройството е превъзходна но и вложените компоненти са предостатъчни за продължителна и надеждна работа.
Прави много добро впечатление че кутията е изцяло изработена от много солидна ламарина с много приятен за окото кафяв оттенък. Единственият компонент по кутията който не е метален, е пластмасовият преден капак покриващ изведените контролни бутони и индикатори за състоянието на устройството. Самото устройство изглежда солидно и здраво но въпреки това е по-леко от очакваното, имайки предвид изработката му. В самото устройство има единична силно интегрирана платка със SOC елемент, RAM чипове, които за съжаление са запоени към платката и не подлежат на подмяна или разширяване, дъщерна карта към която се закачат твърдите дискове (абсолютно безпроблемно) и малък индикаторен и контролен панел.
Прави добро впечатление как производителите от QNAP съвсем спокойно обявяват че устройството им работи благодарение на GNU/Linux система и в официалната си документация са включили GPL V3.0 лиценза в пълният му текст. За незапознатите процесорът на Marvell е базиран на ARM V7. Друг приятен момент в запознаването с устройството е че от самото начало ssh достъпа до него е разрешен. Потребителският инерфейс чрез който може да се управлява устройството е доста красив, функционален изграден в голяма част със типичните за web 2.0 инструменти. Базиран е на HTML, AJAX, библиотеките jquery и scriptalicious.
Начините за употреба на устройстовото са почти безгранични. Имайки предвид че това реално е мрежов сървър за съхранение на данни в него можем да намерим всички очаквани услуги:
Допълнително за да се улесни живота на потребителите (или да се утежни живота на администраторите, в зависимост от интерпретацията) има налични няколко допълнителни приложения и възможности:
За голямо неудоволствие на потребителите на операционни системи различни от Microsoft Winodows или Mac QNAP не предлагат инструменти за първично кофигуриране или управление. Въпреки това рааботата с устройството е много лесна и приятна. Един труден момент е намирането на ип адреса на устройството ако не използвате някоя от споменатите по горе две операционни системи.
При първото си включване TS-219P ако в мрежата ви има наличен DHCP сървър той си взема автоматично адрес. При обратната ситуация автоматично си настройва така нареченият Link Local address (169.254.100.100). След свързване с горепосоченият адрес се вижда следното:

с което ни подканва да инициализираме новото ни устройство и естествено ни информира че всичката информация на диска ще бъде изтрита.
Следва първично инициализиране на диска при което се установяват необходимите за работа дялове:

Прави добро впечатление че в процеса на първична инсталация инженерите от QNAP са решили да наложат задължителен ъпгрейд на наличният фирмуеър движещ устройството. За съжаление се приема всеки валиден имидж на операционната система

След обновяването на софтуера следва доста симпатичен магьосник за началните настройки.

След въвеждане на очакваните настройки: име на устройството, администраторска парола, IP конфигурация, синхронизция на времето, избор на услугите които да бъдат активирани и избиране на дисковата конфигурация следва екран обобщаващ направените избори и очакващ потвърждения:

След прилагането на избраните настройки и инициализиране на дисковете NAS устройството се рестартира и пренасочва към административният интерфейс:

Освен показаният по горе интерфейс в стил Cover Flow има и вариант в който просто иконите са подредени в един ред.
При опит за свързване с IP адреса на устройството (ако не е активиран web сървърът) потребителят е пренасочен към административният интерфейс на порт 8080 където могат да бъдат използвани различните активирани приложения и административният интерфейс. За влизане в системата се поддържа и SSL криптиране на връзката между администратора и NAS устройството.

При въвеждане на административен потребител ни се показва административният интерфейс в който ни се предоставят на пръв поглед някои често използвани задачи:

В дървовидната структура много добре са подредени всички необходими задачи с ясно изразени икони и удобства. Малък недостатък който се забелязва при работа с устройството е кеширането на данните особенно при операции свързани с тотално преконфигуриране на дисковата конфигурация. Това води до пълно изтриване на данните но поради кеширането част от етикетите и предишните конфигурации остават активни.
Въпреки че TS-219P се предлага като NAS сървър то има далеч повече функционалност от очакваната. Както споменахме в предните параграфи, има голям набор от приложения и услуги. Сред тях изпъкват наличният DHCP сървър и възможността за настройване на jumbo frames:

Системата за хардуерен мониторинг:

Базовата защита от мрежови атаки изнесена в удобен интерфейс:

Вариантите за известяване (e-mail, sms):

Доста разочароващо е липсата на възможноста за известяване и управление посредством SNMP, но това не е задължително за всеки. Всъщност това е необходимо за по-големи организации които не са в целевият сегмент на устройството.
Друга забележителна възможност за устройство от такъв клас е възможността за създаване и управление на iscsi target дялове:

В тази функционалност е интересно да се отпележи възможноста за тънко провизиране на дяловете предназначени за iscsi target. Посредством тази възможност в първият момент не се заема цялото място което сме решили да отделим за конкретният случай, което от своя страна позволява създаването на повече дялове които при нарастване запълват наличното място. При подобна ситуация е възможно да се извърши онлайн разширяване на дисковото пространство.
Също така интересни са и възможностите за онлайн миграция и разширяване на наличното пространство. Системата автоматично определя възможните действия над избраните дялове/дискове и предоставя само тези възможности:


Предлагат се доста възможности за споделяне на данните в зависимост от избраният протокол, включително присъединяване на устройството към активна директория, частично премахване на блокирането на файлове при достъп, правата на различните потребители/групи и адреси от които се опитва достъп до ресурсите на системата.


Както е видно от представената по-долу картинка освен че на устройството има инсталиран пълнофункционален web сървър също така има инсталирано PHP и възможността за пълна редакция на самата конфигурация.

Наличните модули са напълно достатъчни за пълноценна работа на да речем Joomla.
Последният акцент от наличният софтуер е Download Station системата:

Той предоставя в удобен интерфейс за сваляне както на торент файлове така и на файлове разположени върху http/ftp сървъри.
С цел пълно разбиране на възможностите на устройството го подложихме на серия от тестове, вариращи от прости тестове за монтиране на споделените устройства, скорост на трансфер, работа с малки файлове и синтетични стандартни тестове за оценка на NAS устройства.
Използваните конфигурации в тестовете са следните:
При Тест 1 с копиране на единичен голям файл се наблюдават скорости на трансфер от 37 до 45 MB/s даващ ни среден резултат от 46 s за трансфера.
При Тест 2 поради копирането на по голям брой файлове с относително средни размери се наблюдават скорости от 36 до 42 MB/s даващ усреднен резултат от 605 s за трансфера
При Тест 3 поради големият брой малки файлове (общ брой 14000) се наблюдава деградиране на производителността на трансфера. Наблюдаваните скорости са от 28 до 33 MB/s даващ усреднен времеви разултат от 311 s.
При Тест 4 се срещат няколко странни резлутата които в началото бяха отдадени на временни проблеми но в последствие се оказва че са сериозни и реални проблеми при определени размери на блоковете при трансфер. Пълните данни са налични при заявка. По долу може да откриете графиките при размер на блока за трансфер от 4kb

Файловият размер е в килобайти. Както се забелязва има доста странно пропадане в скоростта при размер на файла от 8 MB. Друг интересен момент е много сериозното повишаване на скоростта на четене за големи файлови размери. (макар и на цената на доста завишено натоварване на процесора).
TS-219P е един прекрасен NAS с целева аудитория малък офис или дома. Има много удобен интерфейс за управление и голямо количество възможности за употреба. Освен стандартно очакваните възможности и приложения за един NAS има и доста други които дори и по някога стоящи не на място са полезни и удобни. Благодарение на технология на онлайн миграция и онлайн разширяване на дисковото пространство този нас може да бъде използван дълго време само с редовна подмяна на дисковете. Освен всичко това устройството позволява интелигентно управление на използваното електричество, има стабилен и издържлив дизайн (имаше желания за скачане върху него които бяха отказани заради страха от самонараняване). Както може да се види от синтетичните тестове с IOZone той е подходящо устройство при работа със средни до големи файлове.
За финални думи искам да кажа че съм много доволен от работата свършена от инженерите на QNAP.
Е както всички знаете организира се Литературен Конкурс “Оставката на Министъра“. Така или иначе вече се включихме с парична сума но пък за сметка на това сега смятам и да понапиша нещо. Тая събота неделя имах предостатъчно време да гледам телевизия и на … хрумнаха ми някои идеи.
Вариант първи
Предупреждавам … Стилът е почти кошмарен, най вероятноима тонове грешки но … пък си е мое и ми харесва.
Оставката на министъра
Главата се люшна тежко в страни. Светът губеше фокус, и това изобщо не се харесваше на министъра. Вчера май се беше случило нещо. От вътре го гризеше нещо …
Какво ли се бе случило та се чустваше толкова зле. Че пи пи, то това си беше в реда на нещата. Да не би да беше ударил кофти алкохол. След кратка проверка на кошчето и коридора се установи, че все пак алкохолът си е бил наред. Да не би пък да бе прекалил с дрогата. Вярно е че последно време вдигаше дозата ама чак толкова … Бързият поглед към огледалната маса и се установи че втората доза дори не е отворена и даже от първата има малко останало.
Нещата започваха да изглеждат все по-странно и по-странно.
Остана последната възможност, да се бе ударил някъде сериозно. Опипа главата си … странно, нямаше цицини. След бързичка инспекция установи че няма синини, нито изкълчени или счупени крайници.
Ставаше все по-странно и дори страшно. Все едно участваше едновременно в книга на Чандлър и филм на Хичкок. Тази неизвестност все повече го дразнеше, но бидейки един стар кадровик и таен агент познат под името “Нослето”, той стигна до простият извод
“АДЖЕБА що ли се главоболя, я да ида аз на работа и да врътнем машинарията, все от някъде ще изкочи едно зайче и всичко ще си пасне на място.”
Речено, сторено. Облече се бавно и аха да излезе му блесна една малка лампичка:
* Дзънннннн, курвата вчера не ставаше … беше пълнолетна и не се дърпаше. Така просто се губи красотата. Е нищо.
Вече облечен и леко поуспокоен, тръгна към министерството. Малко му беше странно че колата я нямаше долу, но това му се бе случвало и преди. Реши че шофьора си има собствена работа или пък сваля някоя метла и иска да я впечатли.
Поръча си такси, и както обикновенно пална поредната цигара. Бакшиша беше нов, ама наистина нов. Нещо беше приказлив, но едно бързичко скастряне му изби идеите от празната картуна.
Стигна до заветното министерство, излезе тежко от колата, и тръгна напред. Зад него бакшиша се развика
“Абе а сметката?”
“Каква сметка бе анкоолу, ти знаеш ли кой съм бе, а, искаш ли ти напраим живота беличък …”
“Къф си ти бе, нямаш ли комплекси?”
“Аз съм министър бе недоклатено пале, е ся вече ша те праим стерео!!!”
“Ооо в грешка си пич, нали вчера подаде оставка?”
Е те сега вече си такова такованката. В този момент все едно някой запали 100 слънца до министъра, всичко от вчерашният ден му мина рязко през главата. Всичко му се извъртя като на филм. Той си бе подал оставката, при това сам. Ех тежко е да си министър.Вчерашният ден беше започнал просто идеално, главоболието беше точно колкото трябва, алкохолът беше перфектен (троен дестилат 25 годишен), пурите бях кубински, дрогата колумбийска и чиста, курвите перфектни, компанията прилично невзрачна. Просто денят беше започнал идеално. И след това просто всичко се скапа.
Едната курва била с жица, и на всичкото отгоре била непълнолетна. Мда лошо се случи, нищо министър съм ще ми се размине. Да ама не, това не беше единственото. Оказа се че е нужна изкупителна жертва, за да се симулира някаква дейност пред европейският съюз. Обвиниха го в корупция, не че не беше истина но му стана болно. Изсимулираха му един подкуп от само 10000 лв. 10000 ЛВ, как не ги е срам, та той тези пари ги харчеше преди закуска само. о и само това да беше пак щеше да е ок. Ама не, някво недоносено журналистче беше почнало да се рови и беше стигнало до няколко сладки сделки. Беше поръчал да го дисциплинират, но уви, изказът му беше малко пиперливо цветист, и някак си се оказа записан на лента и публично пуснат. Късно се усети.
След това дойде и следващият удар, нямаше да може да се оттърве от накисването за корупция. Този път проклетото ЕС беше се напушило яко, беше му болно. Той така добре работи, краде, маза, лъга, и сега какво. НОЖ В ГЪРБА. Предатели, изменници, ще ги научи тях. След него и потоп.
Помоли секретарката да му напише оставката, нямаше представа как се пише такова нещо. За него оставка не съществуваше, а само повишение и преместване. Е както и да е ще видят те.
След малко секретарката дойде с напечатаната оставка. Боже помисли си министърът, само 3 реда е, как може министър да си подава оставката само с 3 реда, е карай. Погледна нежно секретарката си … и установи че има конска физиономия, но за сметка на това задникът и беше тесен и се гънеше като желе като я сложиш на кура, май беше гимнастичка. В миг на разчустване отвори чекмеджето извади някаква пачка и я подаде
* На вземи, заслужила си ги. Толкоз време ме скриваше от идиоти и нахалници. А сега изчезвай, вземи си отпуска и да те няма искам да съм сам.
След кратък размисъл удари един подпис на оствката, пусна я по вътрешната поща и отвори сейфа …
А в сейфа, в сейфа имаше документи. Малко стари, малко овехтели, тук таме захабени, с лекенца от кафе, но негови …
Е както всички знаете организира се Литературен Конкурс “Оставката на Министъра“. Така или иначе вече се включихме с парична сума но пък за сметка на това сега смятам и да понапиша нещо. Тая събота неделя имах предостатъчно време да гледам телевизия и на … хрумнаха ми някои идеи.
Вариант втори
Предупреждавам … Стилът е почти кошмарен, най вероятноима тонове грешки но … пък си е мое и ми харесва.
Оставката на Министъра
Събуди се с тежко главоболие. В главата му се вихреха разни тъмни мисли, но той ги отдаде на главоболието и обичайната липса на кондиция рано сутрин. Все пак той беше министър и беше немислимо това да се бе случило. Но странно защо след първото кафе, мислите си останаха загнездени там.
Той се виждаше как разписва оставката си. Но това нямаше как да стане, все пак той бе министър, такова поведение не само бе немислимо но и напълно невъзможно. Как така министър сам да си подаде оставката.
Тези мисли го тревожеха. И той направи единственото което обикновенно му помагаше, тръгна към своята персонална ясновидка.
Цеца кухата от столипиново много се гордееше с нейният единствен клиент. Все пак той бе голяма клечка, май беше някакъв актьор защото непрекъснато му виждаше снимката по вестниците които той и носеше. Пък и на всичкото отгоре беше лесен. Не искаше нищо, само трябваше да кима с глава, дори не искаше и да я праска (то кой ли би искал). Като се замисли май никой не я беше праскал от както направи 40. Пък и добре плащаше актьорчето, дойде побъбри малко, пошматка се наоколо, цеца изръсваше нещо безсмислено изпод мустак, той хвърляше на масата пачка пари и си тръгваше. Като цяло сладка работа, ямаше притеснения или нерви.
Министъра гарира скромната си служебна количка, която харчеше повече бензин на ден от един рейс 280 (нищо че те са на нафта, ама са големи зверове), пред раздрънканата барака на цеца кухата. Слезе и се запъти към своето персонално чистилище и душеловка. Но нещо май не беше наред.
Не цеца си беше там, но някак си аурата на мястото беш по-различна, някак си тежка, направо болезнена. Няма нищо рече си той, като влезна и всичко ще се оправи.
Влезна той при цеца. Измина известно време и отвътре се чу злобен писък, сякаш някой го набучваха на кол. И май че колът беше покрит с бръснарски ножчета, а май някой се бе заиграл или със солена вода или с реванол (не реване).
Някакви мизерни наносекунди след писъка, министърът изхвърча като тапа през вратата, с побеснял поглед и нададе същият писък. Изнасяйки се като бен джонсън, някъде наляво изчезна в големият град.
Откриха го след два дни … мръсен, черен, с огън в очите, говорещ несвързано, с кости от плъхове в косата. За голямо съжаление на цялата ръководна класа се наложи да го хоспитализират в специализирано заведени за хора с леки дефекти на паметта. Журналистите започнаха кроткият пир … “Министър подал оставка самоволно преди два дни вече е в лудница”, “Опасно ли е да се напуска държавният апарат?”, “Има ли полза да си реалист, и патриот когато си в лудницата?”.
Вакханалията беше бясна, говори се за това събитие в продължение на цели два месеца. Накрая дойде най-лошото: Министърът се беше самообесил. За целта бе използвал собственоръчно направено въже от собствената си коса и сперма. Този път вакханалията беше много по кротка. Но колкото и да им се искаше на управляващите да не разбутват стари рани, наложи се да се проведе разследване. Защо се беше самоубил министърът, имало ли е помагачи и т.н. И не само това ами беше наложително да се изчисти името на специализираната болница, защото там почиваха доста политици и можеше да стане грозно.
Инспектор Стрезов, водеше разследването вече трети месец, но нещо не вървеше. Имаше чуството, че криеха информация от него и това изобщо не му беше приятно. Въздъхвайки след поредния почти празен ден той си наля първата чаша чист натурален сок от ябълка за вечерта и започна да пренарежда и разглежда информацията която имаше.
Събитията се движеха просто но в тях нямаше никакъв смисъл.
Ден 1ви: Министърът отива на работа и някъде около 15:45, позвънява на секретарката си да му донесе една официална празна бланка. Казва че му се рисувало за да се поразтуши от тази безкрайно грозна и некрасива пролет. Секретарката му занася празна бланка в 15:47. Около 16:15, министърът излиза от кабинета си и казва на секретарката че днес повече просто не може да седи в кабинета си и се прибира. В 16:30 секретарката отива за да остави някои книжа за да може министърът да ги прегледа на следващата сутрин. Намира оставката му, която е саморъчно написана и се обажда на премиера. В 16:41, вестник “ПолитОпозОмазХартиш” научава новината от нарочно инсталиран дериват към личният ТА-21 на министър прецедателя. До 17:25 новината вече е раздухана в огромни пропорции. Министърът вече си е у тях където оставя бележка на жена си че е много уморен и ще спи, както и прави.
Ден 2ри: Министърът става в нормалният си час за ставане (10:51) явно с прилично главоболие. Изпива първото си кафе и тръгва към Цеца кухата. Около 12:45 е пред цеца кухата. Поговарят си малко, разказва че го боли глава, цеца кима, той вади вестник, прочита новината че си е подал оставката и застива като камък (на това медиците му викат кататоничен ступор). След около 2 мин се раздвижва издава зверски писък и изчезва навън в неизвестна посока.
Ден 4ти: Около 17:42 министърът е открит в особенно окаяно състояние. Мръсен, кален, с кости от плъх в косата.
Ден 5ти: Преценено е че в момента министърът не може да се грижи адекватно за себе си и може да представлява опасност за околните, затова бива приет на кратко лечение в специализирано заведение.
Ден 66ти: Шумът около оставката на министъра и последвалото му приютяване в специализирано заведение вече е почи изчезнал. През това време министърът е все в ъщото налудничаво състояние. Не различава никой, не се повлиява от лекарствата, няма достъп до източници на новини, гледа само анимация.
Ден 666ти: Министърът се самообесва с въже направено от собствената му коса и сперма.
Стрезов изпсува яко за пореден път, нямаше никакъв смисъл в информацията, как така един министър ще си подаде оставката и то сам, че даже и саморъчно ще я надпише. Трябва да е имало нещо, някъде има нещо скрито.
В този момент звънна звънеца, Стрезов не очакваше никой, но все пак отиде да отвори. На входа стоеше симпатична цицеста брюнетка с лекоо дезориентиран поглед.
Гледайки питащо, стрезов светна лампата в коридора (някой беше залепил копчетата във фоайетата и не можеше да се светне). Как мога да ви помогна госпожице – попита галантно той.
- Знам няколко неща около оставката на Министъра, ако искате мога да ви ги прошушна на уше.
Стрезов почти се разтопи но дългът му към закона се показа на време и той просто и направи знак да влезе. Докато тя се настаняваше той нагласи записващата техника и забърка едно ирландско кафе за гостенката си.
- Е госпожице започвайте, не се притеснявайте, разказвайте с колкото се може повече подробности. Имаме време, лентата е предостатъчно, а на мен не ми се спи.
- Е добре решила съм се. Аз съм Цицка Цицолиева, бях любовница и държанка на министъра. С мен споделаше доста неща. Не знам дали всичко кеоето ми казваше е истина, но все пак ще ви го разкажа. Точно преди да си подаде оставката той беше в много странно състояние на духа. Казвашеми Че вече не се чуства комфортно като Министър. Твърдеше че нещо го гризе от вътре. Бяха му омръзнали политическите игри, не му било вече сладко да ходи по коктейли или пък да взема подкупи. Започнало било да му става тежко като гледа как се разграбвала държавата, как на никой от кабинета не му пукало за хората. Беше изгубил волята си да бъде Министър. Видях го за последно в деня преди да си подаде оставката. Тогава ми говори за дълг, за лошото състояние на сиропиталищата, чустваше се криво че децата нямало какво да ядат, а пък неговите собствени деца били в частни училища в чужбина и се били възпозвали от държавните пари и прекрасното чуждо образование. Просто не беше същият човек който познавах. Каза ми също че бил нагазил в доста дълбоки води и това не му се нравело. Жена му го обичала, но само това не стигало. Казах му че и аз го обичам но той пак каза че само това не стига. Искал нещо повече. Опитах се да го ободря и му казах че вече има деца, изградил е кариера и като цяло няма за какво да се притеснява. Той само склони глава и каза че съм права. Погали ме и си тръгна. Мислех си че всичко ще се размине и че ще му мине, но уви, не мина. Това е моята история. Дано ви помогне.
Стрезов я погледна тежко и съвсем чистосърдечно и каза, че това не добавя почти нищо към наличните до момента данни. Но все пак е нещо което той много цени. Извика и такси качи я на него и я изпрати да си върви по пътя.
След като си тръгна седна и се замисли … боже какви цици имаше тази Цицка Цицолова. Седна да намести новати информацияи и стигна до така нежеланият от всички политици и силни на деня.
Министърът просто се беше изхабил, беше го хванала най-страшната политическа болест. “Гузната съвест”. Тя беше лош съветник но Стрезов като един препатил специалист знаеше че тя съществува и е почти неизбежна в някои моменти.
Разследването му така и не разкри други факти и той се принуди да представи резултатите си пред Политиците. Те не бяха доволни, но само и само да го накарат да мълчи го наградиха и пенсионираха предсрочно. Оказа се че е болен от много страшна и рядка болест за която единственото лечение е ппродължителен престой в курортни центрове и изпиването на минимум 8 двойни дайкирита дневно в компанията на чернокоси полуобречени островитянки. Стрезов много се бори против това но доктоорите заключиха че не е на себе си и насила го транспортираха до малък остров с предимно женско население , заредиха острова с дайкири и заточиха Стрезов там. Така се оформи зоната СК1 (Специална Карантина 1) където се изпращаха всички подобни случаи.За литературният конкурс “Оставката на министъра”
Автор Владимир Витков
Всяка прилика с реални лица или събития е напълно случайна.
Материалът не е подходящ за лица под 18 години.
Е здрасти, което си е новина си е новина. сайта на БТВ беше хакнат.
Е не точно хакнат ами deface -нат (което си е почти същото). Нямам представа колко време е бил така но около 2 мин след като го видях вече беше свален. Т.е някой бърз админ беше убил webserver -а. Направо ме е срам че не погледнах хедърите на кво върви.
Доказателство: 
Предупреждение: Снимката е големичка
Update: Сайта им е все още долу. Беше си deface -нат като хората. Нямаше нищо трито от секциите, макар че 100% е можело …
Disclaimer: Описаните техники в този документ могат да ви помогнат но не е задължително да са напълно вярни и изчерпателни. Не поемам отговорност за каквито и да било реални или нереални, вреди, ползи, пропуски, паднали къщи или каквото и да е произтичащи от ползването или неползването на този документ.
История
- 25.01.2007 – Първа версия
Тук ще се постарая да опиша по какъв начин съм настроил система състояща се от Trac и SVN която използвам за управление на проекти.
Идеята
Тъй като се занимавам с много и най-вече различни проекти, стана ясно че имам мужда от система за управление на проекти. И докато това ми се търкаляше в главата реших че ще е добре ако може да се използва за множество проекти с множество хора. Почна се търсенето, като минах през dotProject, TikiWiki, Mantis и някои други. Но просто някак си не ми допадаха. В крайна сметка се спрях на Trac и SVN.
Мотивацията
Избрах комбинацията Trac + SVN по следните причини
След всичко казано Trac се оказа едно добро решение.
Желязото
Машината на която работи всичко това е следната
Debian Unstable
600 Mhz CPU
256 MB Ram
20G HDD
Върху нея работят доста услуги: mysql, apache, exim, routing/shaping/nat, dns, dhcp, ntp, ftp, shell, samba (в режим на Master Browser) и други.
Като цяло доста слабичка машинка по днешни стандарти, но полезна и гледана с любоФ
Необходим Софтуер
За да може системата да работи като хората ни трябва следният софтуер
Като цяло най-лесно е ако си имате дебиан. Ако е такъв случая процедурата е пределно проста
apt-get install trac libapache2-mod-python xinetd
И започва веселбата :)
Допълнително към Python сме инсталирали python-setuptools, tracwebadmin, tracaccountmanager.
Разположение на файловете
Тъй като ще има няколко проекта, ще отделим специално място за цялата система. Препоръчително е да е на отделен дял.
При мен се спрях на директорията /home/projects която има следната структура
/home/projects/ /home/projects/trac /home/projects/trac/project1 /home/projects/trac/project2 ... ... ... /home/projects/svn /home/projects/svn/project1 /home/projects/svn/project2 ... ... ...
Възможно е Trac и SVN инстанциите да се намират в директориите на проектите но така се усложнява млко конфигурацията
Същинското изпълнение
Създайте си директорната структура която ще ви е удобна:
mkdir -p /home/projects/{trac,svn}
Създайте си съответните проекти (това става с trac-admin)
trac-admin /home/projects/trac/project1 initenv
Ще ви бъдат зададени няколко въпроса и по точно: Име на проекта, База данни (sqlite е добър избор), тип на хранилището за код, къде се намира самото хранилище.
Ограничение е че хранилището на код трябва задължително да е на същата машина (не се поддържат отдалечени), но това може лесно да се заобиколи с помощта на nfs
Създайте съответните хранилища за код (svnadmin)
svnadmin create /home/projects/svn/project11 Променете правата на така създадените директории съответно на потребителя като който вървят Trac системата и svn сървъра 1chown -R www-data:www-data /home/projects/trac/project1 chown -R svnserv:svnserv /home/projects/svn/project1
Използваме www-data тъй като под този потребител работи Apache сървъра. Потребителя svnserv сме създали предварително като за домашна директория сме му задали /home/projects/svn
След като имаме вече създадени проектите време е да можем да ги покажем в браузър (иначе са безполезни).
Trac може да работи като самостоятелен демон (tracd), като CGI процес (trac.cgi, trac.fcgi) или в контекста на Apache (което сме и избрали) с помощта на mod_python.
В конфигурацията на Apache добавяме
LoadModule python_module modules/mod_python.so
# или го разрешаваме с помощта на дистрибуцията си
<location /projects>
# с какво ще обработваме съдържанието
SetHandler mod_python
# точно с какво (trac)
PythonHandler trac.web.modpython_frontend
# коя информация точно ще сервираме
PythonOption TracEnvParentDir /home/projects/trac
# от какво ще генерираме индекса (не е задължителен)
PythonOption TracEnvIndexTemplate /home/projects/trac/listing.cs
# debug mode ON
PythonDebug on
</location>
Рестартираме сървъра и проверяваме. Трябва да се вижда нещо подобно на следната картинка

Ако ли пък не … почвайте да гледате в логовете какво пише.
Следва да пуснем svn сървър. Това се прави с помощта на svnserve. В случая съм избрал да го стартирам през xinetd понеже няма да е толкова натоварен. За по голяма сигурност ще работи като отделен потребител (svnserv)
Конфигурацията на xinetd е следната
service subversion
{
# слушаме само на IPv4 адрес
flags = IPv4
# услугата НЕ е спряна
disable = no
# потребител и група
user = svnserv
group = svnserv
# максимален брой инстанции
instances = 5
# be nice :)
nice = 15
# кой точно е сървърът
server = /usr/bin/svnserve
# аргументи за стартирането му
server_args = --inetd --root /home/projects/svn
# обичайните работи (логване, типаж ...)
log_on_success = PID HOST DURATION
log_on_failure = HOST ATTEMPT
wait = no
socket_type = stream
}
Тествайте със svn клиент дали работи.
Подсигуряване и подобряване на Услугите
След като имаме работещи услуги време е да помислим за тяхното подсигуряване. А именно ето какво ще направим:
За Trac системите
# влизаме в интерактивен режим
trac-admin /projects/trac/project1
# привилегиите се управляват посредством командата permission
Trac [/home/projects/trac/project1]> permission help
permission list [user]
-- List permission rules
permission add <user> <action> [action] [...]
-- Add a new permission rule
permission remove <user> <action> [action] [...]
-- Remove permission rule
# това е просто за запознаване
# следва същинското премахване
Trac [/home/projects/trac/project1]> permission remove anonymous *
Вече анонимните потребители нямат никакви права.
Trac [/home/projects/trac/project1]> permission add user1 TRAC_ADMIN, MILESTONE_DELETE ....
# всички възможни привилегии
Така добавеният потребител user1 ефективно получава пълен и абсолютен контрол.
[components] webadmin.* = enabled
[components] acct_mgr.admin.accountmanageradminpage = enabled acct_mgr.api.accountmanager = enabled acct_mgr.htfile.abstractpasswordfilestore = enabled acct_mgr.htfile.htdigeststore = disabled acct_mgr.htfile.htpasswdstore = enabled acct_mgr.http.httpauthstore = disabled acct_mgr.web_ui.accountmodule = enabled acct_mgr.web_ui.loginmodule = enabled trac.web.auth.loginmodule = disabled [account-manager] password_file = /home/projects/trac/users password_store = HtPasswdStore
Какво точно прави всяка опция е добре обяснено в документацията (линковете са в края)
Сега е необходимо да рестартираме web сървъра за да влезнат в сила нашите промени.
За svn сървъра:
Забраняване на всякакъв достъп за неауторизирани потребители
Това се изпълнява като се редактират конфигурациите на svn сървъра. Те се намират в директорията в която е нашето хранилище на код. Модифицираме ги по следният начин:
conf/svnserve.conf
### This file controls the configuration of the svnserve daemon ### Visit http://subversion.tigris.org/ for more information. [general] # никакъв достъп за анонимните anon-access = none password-db = passwd authz-db = authz realm = Project 1
conf/authz
### This file is an example authorization file for svnserve. ### Its format is identical to that of mod_authz_svn authorization ### files. [groups] # за кой път иде реч (правата се унаследяват) [/] # правата на потребител (четене и писане) user1 = rw # правата на всички останали (пълна нула) * =
conf/passwd
### This file is an example password file for svnserve. [users] user1 = password
Заключение
След като сме си свършили всичката работа следва да рестартираме за един последен път apache и xinetd и да започнем да си ползваме системата. За подробности за работата с нея … във връзките
Връзки
Trac
mod_python
Apache
Subversion
TracWebAdmin
TracAccountManager