The Diary
Дневникът на Jul
<- Дневника
Компютърни Хитринки
Сряда, 24 Май 2006
Четейки как всяка година завършващите училище издивяват все повече им се чудя и аз все повече на акъла. Най-голямата заблуда на Абитуриентите е, че си мислят че са свършили и че най тежкото е зад гърба им. Един жезъл са свършили! Това което ги чака е много повече и много по-гадно (освен ако от простотия, тяхна или чужда, не се убият по баловете)от това което е зад тях. Аз си мисля, че преди три години когато аз бях абитуриент, по-скоро съжелявах че училището свършва от колкото да се радвам. Но хора всякакви. И все пак да ни е честит 24 Май! На всички настоящи и бивши ученици, студенти и всички други научни дейци (като мен хехехе).
Днес се захванах да сгазя Google Code Jam състезанието ама явно съм излязъл от форма. За да не го пиша пак ще копилам тук съдържанието на мейла до кица относно конкурса. На който ще му е интересно той съдържа и описание и разбор на задачите. Предварително се извинявам за шльокавицата, тя е тук само заради мизерния 7-битов енкодинг на някой сървъри.
...uchastvah online na "Google Code Jam" - sustezanie po informatika organizirano ot Google. No sum poizlqzal ot forma - za zadachite imah 1 chas te bqha samo 2 i to sravnitelno mnogo lesni. No ne mi stigna vremeto da predam vtorata, teoretichnoto i reshenie i prakticheskata realizaciq na C++ bqha gotovi no ne ostana vreme da izchistq greshkite v neq, taka che na dali shte mina na sledvashtiq krug. Sega shte se opitam da vi pratq usloviqta do kolkoto si gi spomnqm za da moje da gi davate po kontrolni ili dori mislq che sa dosta dobri za 1vi krug na olimpiadata (pone purvata, vtorata moje bi e malko nad tova nivo) i t.n. Izobshto purvata e mnogo mnogo lesna a vtorata e mnogo pod nivoto na nashata nac. olimpiada. Bi minala nai mnogo na vtori krug.
1. Dadena e pravougulna matrica ot bukvi s razmeri m x n. da se opredeli minimalniq broi simvoli v neq koito trqbva da se promenqt za da moje vseki red i stulb da stane palindrom (da se chete ednakvo otpred nazad i obratno).
Primer :
ABC
DCD
ALM
Otgovor :
3
Obosnovka:
ABA
DCD (promenili sme purvi red treta bukva i treti red 2ra i 4ta bukva)
ABA
Komentar:
Ideqta na zadachata e che vseki 4 bukvi razpolojeni simetrichno sprqmo centura trqbva da sa ednakvi za da se obrazuva palindrom. Toest gledame kakvi sa tezi bukvi i broi broq na razlichnite. Estestveno nai dobre e da priravnim kum tazi bukva koqto se sreshta nai-mnogo naprimer ako imame ACDA za 4 takiva bukvi to e dobre Ci D da stanat A. Toest za tazi chetvorka trqbvat 2 smeni. Izobshto smenite sa ravni na broq na razlichnite bukvi minus 1 vinagi. I taka za vsqka chetvorka se sumira. NAi lesno e da se obhodi v dva vlojeni cikula gorniq lqv kvadrant na pravougulnika i za vsqk bukva tam da se izcisli borq na smenite taka slojnosta e (m / 2)*(n / 2) samoto borene na razlichnite bukvi az go realizirah s hesh tablica ot standartnite na C++ std::map za kluch polzvah bukvite a kato stoinost zapisvah kolko puti sum q vidql dosega.
2. Dadeni sa n na broi stancii po edna na vseki asteroid v edno asteroidno pole. Ideqta e da se osushtestvqva komunikaciq m/u vseki dve stancii s pomoshta na specialni luchi, kato dve stancii se orientirat edna kum druga i togava mogat da kominikirat pomejdu si. Edna stanciq moje da izprashta na dadeno razstoqnie, no cenata na tehnikata raste mnogo burzo s razstoqnieto, ot druga strana dve stancii otdalecheni na p kilometra ne e nujno da imat i dvete stancii s obhvat p zashtoto efekta na luchite e kumulativen. Toest ako ednata prashta na p - 100 a drugata na 100 to dvete mogat da komunikirat pomejdu si. Vuprosa e ako se znaet koordinatite na stanciite v triizmernoto prostranstvo (zadadeni kato troiki x,y,z) da se opredeli minimalnata cena na vsichki suorajeniq. Ili s drugi dumi po dadeni broi i koordinati na vscihki stancii da se izvede duljinata na lucha na nai-slabata stanciq. Ako sushtestvuvat nqkolko ekvivalentni resheniq za se izvede rezultata ot tova reshenie koeto ima nai-kus maksimalen luch (ako i po tozi kriterii nqma ednoznachno reshenie da se izvede tova s nai-kus vtori max. luch i t.n.).
Primer:
4
0 0 0
0 0 3
0 4 0
0 4 3
Otgovor:
2.5
Obosnovka:
*-------*
|.\_....|
|4..\_5.|
|.....\.|
*-------*
3
Toest trqbva luch s duljina 2.5 v vseki dve diagonalno protivopolojni stancii za da mogat da se vijdat. A Ako mahnem edna ot chetirite shte trqbva 2 stancii s luch s dujina 2.5 (v vurhovete na hipotenuzata) i ostanalata stanciq moje da mine s luch s duljina 1.5 Toest otgovora bi bil 1.5
Komentar:
Tuk ima malko poveche ideq. Purvo izchislqvam vsichki dvoiki razstoqniq m/u vseki dve stancii. Posle vzemam nai-dulgoto razstoqnie i prisvoqvam na dvete stancii v kraishtata mu duljina na lucha razstoqnieto razdeleno na 2. Sledva pak izchislqvane na razstoqnieto m/u vseki dve stancii (no veche kato otchitam che ima 2 stancii koito mogat da komunikarat na nqkakvo razsotqnie. Toest vseki put za tqh raztoqnieto se smqta kato razstoqnieto bez tehnite duljini na lucha. Pak izbiram nai-dulgoto razstoqnie i go razpredelqm m/u dvete stancii m/u koito e (v sluchai che ednata veche ima prisvoena duljina na lucha cqloto otiva za smetka na drugata (no ochevidno razstoqnieto koeto e ostanalo trqbva da e po kuso ot polovinata ot predishnot nai-dulgo inache bihme izbrali tazi dvoika na predhodnata stupka). Tova se povtarq dokato vsqka stanciq poluchi luch. I izvejdame rezulatata poluchen na poslednata stupka kato kraen rezultat. Estestveno tova reshenie ne moga da potvurdq che e vqrno zashtoto kakto kazah ne mojah da predam tazi zadacha navreme za da bude ocenena.
[ Добави коментар ]Сряда, 14 Юни 2006
Престраших се да сложа първата официална бета версия на Windows Vista. Много е красива наистина, фраш от анимации, сенки и ефекти. Естествено всичките екстри си имат цена - 6.6ГБ хард иска и около 600МБ рам. Отделно, че моята машина и вади рейтинг 4 което както разбирам е по малко от средното а все пак съм с 2ГБ рам и що годе свестен процесор и видео. Има и още проблеми с хардуера - например като установи че имам хардуер за които намо драйвери и ти вика "наври сега някво CD с драйвери аз сам ще си ги изкопая от там". Това похвално ама след като свърши и повече не щеше да познава, че пъхам други дискове в устройството и все като празно го показваше. После като тръгна да създава Recycle Bin-овете и видя, че вече има такива от стария Win и се позацикли за известно време ту го създаваше ту го триеше. След известно време очевидно се пообигра на компа и спря да се лигави. Освен това един от най-дразнещите проблеми беше при инстала. Свърши да си копира файловете и да ги екстрактва (а това за 6.6ГБ си изяде към 15мин, добре че вечерях тогава, хехе) се рибуутна и умря, не щеше да буутва ами даваше някаква грешка. Стартирах пак от сидито, дадох на Repair то ми каза че имало разкебацан буут запис на един партишън предложи да го оправи и после инсталацията си продължи нормално. Все пак ако това се случи на някой ламер, няма да му стане много драго. Но красивите ефекти определено грабват - ще е удоволствие да се работи на тоя ОС стига да е стабилен и да имаш яка машина.
[ Добави коментар ]Четвъртък, 15 Юни 2006
Днес установих каква тъпотия съм свършил вчера преди да си сложа вистата. Та реших да си архивирам MBRто за да знам че после ще го оправя лесно, ама аз акълията да си архивирам тоя на 200 гигабайтовия хард, от който аз всъщност не буутвам. Та сега като си буутва линукса трябва да го правя от CD и после в конзолата на ГРУБа да си пиша на ръка. За тези които не са фенове на груб но им се наложи. Ето кратко
HOWTO BOOT FROM THE GRUB CONSOLE[ Коментари: 1 / Добави коментар ]Първо като/ако ви се пусне графичната среда праснете един ESC да излезете он нея. Той ще ви пита за това още веднъж дали сте сигурни. Е като е упрял ножа в кокала ще сте не сигурни ами и песен ще пеете.
После праскате и едно 'c' да пусне конзолния режим. Нема се плашите ако засерете положението винаги можете с един ESC да се върнете пак в менюто.
Та там се изпълняват последователно следните четири команди
GRUB> root=(hdx,y) Където х е номера на харда броят се от 0 и по принцип номерацията е hda,hdb, hdc,hdd...hdz,sda,sdd...sdz ама това се настройва при инсталацията на GRUB така че не е задължитлено да е същото. У пък е номера на партишъна тук вече са си като тези на съоветния дивайс само че с едно по-малки защото пак се брои от 0. По принцип изпробвате, той GRUB казва на какъв партишън сте попаднали 0x83 е кода на etx3/RaiserFS/xfs или каквато и да е друга ФС имате за линукса.
GRUB> kernel=/boot/vmlinuz С това давате къде е файла на кернела. За SuSE/RedHat etc. е обикнове в /boot/ но на Debian е в / . После дебиана си иска тук параметър кой е всъщност рута. Той се задава като след името на файла се даде с интервал параметъра root=/dev/sda1 естествено с вашия истински партишън на това място.
GRUB> initrd=/boot/initrd Това е файла с койт се инициализи рамдиска и съответно съдържа модулите които трябва да са заредени заедно с кернела. Отнова различните дистрибуции го държат на различно място но по принцип е там, където е и кернела.
GRUB> boot Тази команда указва, че системата е подготвена за зареждане и стартира самия процес.
Отделно GRUB има сравнително свястна помощ която се вика с help [command-name] където без команда дава техния списък, а с команда инфо как тя се ползва. После той поддържа допълване на имената с TAB като на конзората в линукс, така че, няма нужда да пишете като гламави всичка. И накрая последен съвет ако буутвате Windows по този начин вместо root изпълнете комадната rootnoverify и после изпълнете командата boot.
Тук е полезно да се знаят още 2 неща. Първо когато GRUB усети че нещо не е наред и не може да буутне сам (т.е. там където LILO би написал едно 'LI' на екрана) ще ви изплюе направо в конзолата с кратка и неясна информация за грешката. Така че първите стъпки отпадат. Това става много често, като сте закачали друг диск в машината. Понеже това променя номерацията на хардовете и GRUB не може да си намери верния партишън. Тук след като го нацелите и буутнете. Си опратете конфигурацията на груб /etc/grub.conf и направете един grub-install /dev/sda естествено пак с верния дивайс за вас де. За да си оправи настройките. Другото е, че така не сте ограничени да буутнете само текущия кернел, дори може да бутнете кернел от съвсем друг линукс (ех това най вероятно ще свърше с 'Kernel Panic!' де). Но схващата идеята, прекомпилирали сте/ъпдейтвали сте кернела - неуспешно и така може може да стартирате стария все още работещ ако го пазите, или някой друг предвидливо сложен на дискетка, защото не ми е известно как да бутнете от нещо друг освен хард (hdX,Y) или дискета (fdX).
Коментари
Петък, 16 Юни 2006
След като днес имах много як сън - първо играех на Марио и изведнъж аз се оказах в неговата роля (по точно бях Луиджи) и накрая някакво 3-Д снана даже и не се виждаше много отпред, ама аз нали преди това отстрани го бях гледал та занех на къде да одя, а една от ония риби в играта ме преследваше. Пък и начина по които имаше стълби малко на LodeRunner напомняше. Освен това в съня си като се опитвах да се въртя в леглото и с края на съзнателното си мислене осъзнавах как нямам идея на къде лежа въобще в момента и от кой край на леглото ще изпадна.Пък аз все пак имам спалня метър и 40 широка тей, че трудно ще изпадна от където и да е, и не не съм пушил или пил каквото и да било вчера освен две бири, ама те в тая жега не се броят.
После дойдоха първо пердетата ми от България които вече висят в стаята, а по късно дойде и мрежовката ми дето си я взех за 4Евра с доставката от Ebay. Пък не е толкова лоша 3Com 905TX или нещо такова 100мегабитова (има си хас да не е) светка мига и което е по-важното работи. Ама все пак отиде час и нещо да я подкарам като свят. Първо реших съвсем наивно да я бодна просто в Дела и да вървя да си карам работата, ама като видях че при мене компа не отлепя даже и IP да си вземе от DHCPто разбрах, че работата няма да стане без да се закача дирекно на конзола на оная машина. Пренесох монитора и с тупнах на земята в коридора при оня комп. Та той нещо не можеше да си подреди картите като свят защото беше кръстил 3Com-a eth0 а другата даваше грешка 'can't remane eth1_temp_temp to eth0 ми естествено, че няма да може да я преименува нали другата вече се казва така. Успях да ги дигна двете карти на ръка и да си побутна /etc/network/interfaces ама като го рестартих все се засираше. Накрая когато тъкмо реших, че ще трябва да живея с това тъпо име eth1_temp_tempр и той някак си успя д ги именува правилно и сега са си както трябва Делската карта е 0 а 3Ком-а е 1. Сега вече рутера е истински рутер защото има външен и вътрешен интерфейс и не се мешат LAN-a с Internet-а. Другото добро е, че хъба е вече свободен и е тук на бюрото така и лаптопа е захранен с мрежа и не се налага да ползвам примитивни средства като SD карти да си копирам файлове от едния комп на другия.
[ Добави коментар ]Вторник, 20 Юни 2006
Днес пак малко софтурна тематика - открих решението за ръчкане на програми в трея на КДЕ - Alltray от сайта на КДЕ може да се изрови бързо. Навира всяка програма в трея и предефинира бутона за затваряне да я минимизира пак там. Освен това за XMMS добавя в собственото си меню бутони за пускане спиране и прескачане към следваща песен. Само единствения проблем който забелязвам е че понеже XMMS има няколко джама, този на плейлистата не се скрива правилно защото очевидно не му е даден правилно бащинския прозорец при създаването, едно скриване и пак показване оправят нещата. Иначе програмката е супер и пести много място в таскбара.
Другото е, че може би сте забелязали как Гризача го нямаше за повече от час днес - е това е проява на върховна тъпотия от моя страна. Понеже пращах голям мейл днес а трябваше вече да тръгвам за унито и му праснах един shutdown +15 -h -R ама в бързината не съм забелязал, че в тая конзола съм се бил логнал на другата машина. Връщам се аз после и гледам моя комп още бачка, викам си нещо е зависнал, ама не той си джитка съвсем читаво а на конзолата най отдолу забелязвам - Connection to thor lost. Та тей - за което се извинявам много на пострадалати РСС фиййдъри най вече.
[ Добави коментар ]Неделя, 25 Юни 2006
Направих още едно добро откритие което считам за полезно да споделя тук. Този път се отнася за KMix - програмката на KDE за регулиране на звука. В менюто Settings има Global Shortcuts... от където може да се настроят клавишни комбинаций за усилване, намаляване и мутиране на звука, които работят от всяка програма - наистина много удобно нещо аз съм си сложил CTRL+ALT+стрелките нагоре и надолу. Освен това ако сте с съраун звук като мен си струва от менюто на десния бутон на иконката в трея от Select Master Channel да изберете PCM за главен канал така регулирате едновременно всички канали с клавишите и от слаидера на ляв бутон на иконката.
Цяла сутрин се занимавах с една задача от дискретното оптимиране от домашното - нищо особено а ми се лигави повече от два часа докато тръгне. После понеже бях изтървал да добавя едни ограничения отдолу след 3 часа неуспешно търсене и корекция от моя страна да ги добавя намери решение за 10мин. Грешно. И туй щото lp_solve не работи добре, когато целевата функция стане отрицателна. После за няколко секунди с scip и soplex намерих и вярното решение. И в случай, че това го четат млади информатици да спомена важна бележка за симплекс метода. Поне по наше време беше много модерно да се говори за него като THE МЕТОДЪТ за решаване на състезателни задачи. Това е така доколкото повечето състезателни задачи са за оптимиране и то при това на линейни функции. НО симплекс метода в никакъв случай не е най-бързият - като пример ще кажа, че задачата която решавах с най-простото пълно изчерпване щеше да има да провери едва 5^3 = 125 случая сигурно ще свърши за 0.0001сек а симплекса и (поне този който аз можах да съставя по нея) имаше да оптимира над 240променливи с 108 гранични условия - и това защото целевата функция не е пряко линейна спрямо обема на началните променливи а линеаризацията и изисква съставяне на изкуствени променливи които са квадратно пропорционални на броя на входните данни. Та имайте това наум като ползвате симплекса.
Най сетне намерих и време да поблъскам малко. Този път в къщи направих малко упражнения от които искам да отбележа две защото са лесни а водят до доста добри резултати. Като казвам лесни имам предвид лесни, че не изискват сложни уреди, иначе особено едното си е ...(CENSURED)... . Та първо по-лесното заставате пред един стол с гръб към нето и се хващате или за седалката за края или за облегалката (само ако стола е стабилен щото иначе много лесно може да се капичне или да се счупи облегалката) изтеляте се напред така че краката и тялото да са на една линия и ръдете да носят тещеста на тялото и почвате да се спускате и издигате с сгъване на ръцете в лактите навън. Това натоварва най-вече раменете и трицепса и врата - просто жестоко за правене на рамене - колкото по нашироко ръцете толкова повече зар за раменете и гърдите и по малко за ръцете. Другото е съвсем лесно лицеви опори но едната ръка да се подпре на по високо с 15см някъде - аз го правя на книги - сле по две серии от по 10 с вяка ръка и се бях припомпал като змей :)
[ Добави коментар ]Понеделник, 7 Август 2006
Днес направих най-жестокото нещо до сега в жирота ми. Отрязах около 20см от косата си и сега е като от преди 8 години когато у пусках - до раменете ми. Но и трябваше малко освежаване и се реших най-сетне да го направя. Засега отзивите са смесени, Лъчко каза, че било педалско, други ме похвалиха, но ще оставя времето да покаже.
Днес изпратихме и Калин за Америка. Ееех той днес, а аз ще съм следващия и пац рано или късно ще ни последва и кой ли още не знаен и незнаен БГ студент в чужбина, но такъв е живота, пък и така връщанията ни се услаждат още повече.
[ Добави коментар ]Четвъртък, 31 Август 2006
Понаблъсках Гризача с нова порция свежо съдържание. Вече е доста попълнен от лятото каквото имах сложих. Ще има и за утре де. Мисля да почвам да попълня дните от българия които са интересни да сложа. Освен това намерих много добър начин да вадя списък на снимките които са браузвани от дадено IP. Ценна екста в админския живот предвид как вземат да се качват посещенията на сайта за втория му ден онлайн след ваканцията. И малко полезно инфо по въпроса за заинтригуваните PERL е най-добрия RegExp парсер както ме светна Пешо да е жив и здрав и брат му също.
. perl -ne '/photo-album/main.php?item_id=\d+/ and print' access.log[ Добави коментар ]
Сряда, 13 Септември 2006
Днес направих най-тъпото нещо от много луни насам
me@atila:~> rm -fr *
какво не виждате нищо нередно ли? Ами обърнете внимание на текущата директория. Мдам вълничкааа и какво е вълничката? Правилнооо home директорията ми. Та, накратко, след този лиричен откъс, затрих около 20% от моите файлове, между които всички документи, настройките на КДЕ барабар с програмите ми. След кратка справка с Гугъл, ех добрия стар Гугъл намерих решение.
reiserfsck --rebuild-tree -S -l logfile.log
Специално за рейзър става дума де, защото за ext2 си има по лесни начини, но не и по надеждни де. Та идеята е че тези опции сканират всички инодове и възстановяват всички файлови вериги които намерят. Много важни два съвета. 1. Като омажете работата да изтриете нещо най добре се измъкнете по най-бързия възможен начин от там където сте омазали. Най-добре спрете си графичната среда и продължете на конзола. И също така направете umount на дяла преди да почнете. 2. Това с възстановяването не е 100% сигурна екстра и самия feiserfsck предупреждава и аз го казвам ако можете, направете backup на данните на партишъна които са още там преди да се мъчите да възстановявате. И накрая да спомена, че и много имена на файлове се губят при това и той ви кръщава с номера само. Естествено това не е много надеждно защото някой път омазва и смесва стари и нови парчета от някой файлове, но в крайна сметка възстанових около 80% от загубеното и то най-важните при това. Малко чат логове и настройките си заминаха, но пощата ми и документите ги върнах.
Сега ще напиша и превод на този пост на английски защото го намирам за ценен и може да помогне на някой дошъл тук от Гугъл.
Undelete files under Linux on ReiserFS
---------------------------------------
After being stupid enough to delete around 20% of my Home directory I started looking for a way to get the files back. I knew there is no way to do it, but actually I found some documents that state the opposite so I gave it a try and actually managed to get around 80% of the lost back. This is being done with the service program reiserfsck that you certainly have installed on your system. So here is how it goes in a few steps.
1. Get as fast as you can out of your X if you use it - it writes the whole time all over the place so the chace to get some file screwed gets higher. Continue to recover from the console.[ Коментари: 1 / Добави коментар ]2. BackUp everything that is still there and you need - the operation of fsck is not 100% relieable. The tool states it once again before you start it.
3. Unmount the partition with the deleted files.
4. start the tool as
reiserfsck --rebuild-tree -S -l logfile.txt
This will rebuid the whole structure tree of the inodes on the partition even in the marked as empty space (the S option) and will place all recovered files in the /lost+found folder of the partiotion.
(see the man page of the command for more info)
5.Remount the partition
6.Try to locate the files you need because a lot of files will have names consisting of only numbers. Some will be there but will be corrupt, so you pray your important ones are still intact.
Коментари
не си виновен ти, а датата :)
бе това със звездичката гледам все по рядко да го ползвам ;-)Написа marvel (email) на 18-Sep-2006 13:21
Събота, 16 Септември 2006
Днес пак беше що-годе безделнически ден. Основно занимание ми беше да се наспя яко. После всичките ми опити за спорт пропаднаха понеже дружките ми тук са или заети или ги няма и така се наложи да поблъскам малко в къщи. Сложих на сървъра ми малко видеота на етър и те веднага ми пръснаха цефката с 3ГБ трафик т.е. около 3-4часа бях практически без нет от високия ъплоад които ми правеха (ех остана малко и за Q3 де). Открих и оправих и жесток пропуск в сигурността на сървъра ми. Той се състои в следното. Когато се инсталира vsftpd по подразбиране той е настроен да работи само с анонимен акаунт. Естествено при мен нещата стоят точно обратно - аз не искам анонимен акаунт а да мога строго да определям кой къде може да бута. Затова го пренастроих да работи с локални акаунти. Това обаче води до две последствия. Първото е, че човек който знае акаунта за ftp-то може да се логне на ssh и да мизерства там и вторият проблем е че по подразбиране опцията за ограничаване на достъпа в vsftp до home-а на юзъра не е пусната тоест той може да си шава по цялата файлова система. Ето и как реших двата проблема.
За да се определи строго кои потребители имат право да се логват на ssh е нужно да се редактират следните два файла:[ Коментари: 1 / Добави коментар ]/etc/security/access.conf
В него се добавя реда:
-:ALL EXCEPT user1 user2:ALL EXCEPT LOCAL
така се разрешава отдалечен логин само за изброените потребители
/etc/pam.d/ssh
Махнете коментара на реда account required pam_access.so както е указано в коментара след него това ще направи ограниченията в файла access.conf който току що редактирахме активни
# Uncomment and edit /etc/security/access.conf if you need to set complex # access limits that are hard to express in sshd_config. account required pam_access.so
После рестартирайте sshd за всеки случай, макар че промените мисля, че стават активни и без това веднага.
За да ограницчим потребтилите, които пък имат право да се логват на FTP сървъра трябва да намерите и установите следните опции в файла
/etc/vsftpd.conf
anonymous_enable=NO local_enable=YES userlist_enable=YES userlist_deny=NO userlist_file=/etc/vsftpd.userlist
Някой от тези редове може да отсъстват изобщо в файла по подразбиране тогава просто ги добавете накрая. Значението на всеки един от тях е ясно от името. Първият ред забранява логване с anonymous, вторият указва логването да се проверява спрямо потребителите на системата, третият и четвъртият ред заедно указват че файла даден на реда userlist_file е списък с имена на потребители, които имат право да се логват на сървъра. Така се забранява например root да се логва в сървъра. Самият формат на vsftpd.userlist е просто по едно потребителско име на ред. Например:
/etc/vsftpd.filelist
user9 userA userFF etc...
Накрая рестартирайте и vsftpd и това е систевата е малко по-сигурна от преди.
Коментари
да, така е.
един съвет, смени си SSH демона с някой друг порт например 443 ако не ползваш https, голям рахат е :-)Написа marvel (email) на 18-Sep-2006 13:07
Неделя, 17 Септември 2006
Днес най-сетне ми писна тотално и решх, че е време да се хвърля с главата напред и да слагам Debian и на моята машина. Сузето си омаза здраво базата данни за инсталираните пакети, пък и не можех да го ъпдейтвам нещо, а и поради различните компилатори не можех да ползвам distcc за да компилирам и на двете машини. Инсталацията мина много гладко, но уви се наложи да сложа 32битовата версия. Причината да не сложа 64битовата беше, че NetInst CDто което преди време си бях запекъл даваше някаква грешка в началото още, че не можело да определи каква версия на Дебиан е самото то и няма да се инсталира докато не разбере. Е заебах го и пуснах 32битовата инсталация. Посленаслагах малко пакети, а докато те се свалят гледах по Pro7 Bad Boys 2 забавно филмче, нищо, че го гледам за 3ти път. Особено ме кефи момента когато единя пич се надруса здраво с Екстази. И като прави групости в къщата на шефа им. Като свърши филма, инсталацията вече беше 6. Последна стъпка беше да си прехвърля home-а ми. Е това стана много много лесно. Ето как е то в няколко лесни стъпки
Прехвърляне на /home partition на друга дистрибуция/инсталация без chown и chmod. Например ако в директорията има файлове притежание на различни хора и един глобален chown не е добра идея.1. Докато имате старата дистрибуция още вижте в /etc/passwd кой е номера на юзъра и на групата (uid и gid). Ето как да ги намерите. Всеки ред в passwd изглежда така:
zaio:x:666:1234:Zaiko Baiko:/home/zaio:/bin/bash
От тук се вижда че gid е 666, а uid е 1234 и че до сега домашната директория на Зайо е била /home/zaio. Това се прави за всички юзъри без root. Ако и той е на отделен дял мже да приложите и за него тази тактика.
2. Създавате в новата дистрибуция юзърите без да сте монтирали дяла , например с adduser zaio и т.н. без да им създавате домашни директории. После редактирате файла /etc/passwd и /etc/group така, че номерата на потребителите и съответните им групи да пасват както са били в старата дистрибуция. Защото например SuSE и Debian ползват различна система за номериране на юзърите. Или пък може да не искате да прехвърляте всички потребители.
3. Вече сте готови да добавите един ред в /etc/fstab да се монтира и файловата система на /home. Той трябва да енещо такова само с верен дял на диска и тип на дяла.
/dev/hda2 /home reiserfs defaults 0 2
4. Правите един mount -a и ако всичко е минало успешно трябва да може да се логнете с новосъздадените юзъри и те да виждат своите ~.
Напоследък съм на вълна писане на туториалчета, ама ще ме прощават нетехническите настроени читатели, просто намирам за добра идея да споделя на български малко знание за да спестя мъките на другите.
[ Добави коментар ]Сряда, 27 Септември 2006
Днес дебианизирах и другата ми машина. Така се заформи моят compile farm с две машини P4 на 2.8ГХц и общи 3ГБ Рам. Добре компилира но определено линква по бавно от моя AMD звяр (само да уточня това е операция която не се мести по машините). Но пък намерих лесен начин да прехвърля списъка с пакетите от едната машина на другата. На първата правя dpkg-query -W -f="{$Package} " > packagelist На другата машина едитвам файла да сложа отпред едно apt-get install и готово. Няма страшно, че доста от пакетите са вече сложени. Само, че този трик не го препоръчвам ако е минало доста време от както се слагали първата машина. Проблема е, че може някой пакети вече да ги няма - заменени от други или просто deprecated. За само единия ден разлика имах два пакета в sid Debian дистрото. Освен това да напиша в няколко кратки стъпки как се вкарва машина в NIS домейн. Като цяло това което пиша е нищо повече от съкратен превод на описанието на сайта на Gentoo за тяхната дистрибуция. Абе изобщо за всякакви проблеми препоръчвам горещо на Gentoo сайта - много пълни и точни описания какво трябва и не трябва. Само да кажа, че днес с помощта на описанието пуснах NIS-а за 3мин а вчера не можах за няколко час сам да го направя. Та идеята за дебиан (а и изобщо но без пакетите - може би при вас са с други имена) е следната.
[ Добави коментар ]NIS КЛИЕНТ ЗА 5мин -------------------------------------
1. Слагате пакетите nis и autofs. 2. Редактирате файла /etc/passwd като добавяте накрая следния ред:
+::::::
и файла /etc/group съответно с нов ред :
+:::
3. После слагате във файла nsswitch.conf нещата с плътен шрифт:
passwd: compat nis group: compat nis shadow: compat nis
automount: files nis
4. Поне в Дебиан има един бъг с старт скриптовете за autofs и той е, че не стартира първо NIS и после autofs а се опитва да ги пусне едновременно. Но пък файловите системи въобще не са известни докато ypbind не се е вързал с сървъра и така оставате без монитрани директории при мене без /home. Аз го оправих този проблем като преимунавах S19autofs S20autofs за всички runlevel-и.
mv /etc/rc2.d/S19autofs /etc/rc2.d/S20autofs mv /etc/rc3.d/S19autofs /etc/rc3.d/S20autofs mv /etc/rc4.d/S19autofs /etc/rc4.d/S20autofs mv /etc/rc5.d/S19autofs /etc/rc5.d/S20autofs
5. Е вече може по желание или да рестартирате или да си пуснете наново на ръка nis и autofs и да си ползвате всички потребители на сървъра и всички мрежови ФС.
Четвъртък, 19 Октомври 2006
Днес открих, че са пуснали най-сетне онлайн предаването на ZRock, и дори високото качество на ог стрийма е наистина високо и звука е много добър. Радиото също изглежда добро смесват приятно класиката и нови неща. Ще се завъртам отвреме на време на тоя стрийм да видя какво ново.
Може би ще ви ентересно да знаете как да си настроите Apache 2 сървъра да не яде прекалено много жица или пък да не приема над определен брой заявки, или пък ако хоствате за шир потреба как да ограничите трафика на виртуалните домейни. Това става бързи и лесно с mod_cband модула за Апах от http://cband.linux.pl/. Мого развит модул с поддръжка на персонални настройки по виртуални хостове и по входящи IP адреси. Тоест можете да зададете макс. скорост, връзки за всеки хост, но и да дадете на някой потребители право да се вържат на по висока скорост или с повече едновременни връзки. В документацията му всичко е описано доста свястно и затова ще отбележа само едно нещо, което ми отне известно време защото не го пишеше там а по грешката открих решение в Гугъл. Като си нагласите всичко и ако ползвате подразбиращите се файлове на Дебиан за дефиниция на виртуалния хост, ще получите странната грешка - "Host name not found 'CBandLimit' attribute not defined" или нещо близко - цитирам по памет. Доста объркващо защото първо мислех, че е проблем на Апах, че не намира модула нещо. То се оказа, че модула задължително иска да има дефиниран атрибеута за името на виртуалният хост -
ServerName grizach.servebeer.com
Сред като го добавих при мен и заспа. Останалите нужни настройки ги има дори в примерен конфигурационен файл за апах плюс описание на всяка една с няколко типични примера след това за различни случай в които може да искате да ползвате подобен модул.
[ Коментари: 1 / Добави коментар ]Коментари
горещо препоръчвам радиото на строежа :
http://radio.stroeja.com:8000/stroejo.ogg.m3uНаписа alt на 25-Oct-2006 16:12
Четвъртък, 16 Ноември 2006
Бързам съвсем накратко да разкажа за днешното ми посещение в EUMETSAT фирма или по-точно международна non-profit organization, която е автор и управлява 4 метереологични сателита в космоса от Дармщат, където е централата. Та бяхме на посещение там , уви снимането беше изрично забранено, а и самата презентация не беше много на ниво, но пък да се чуят някои подроббности около сателитите си беше интересно. Най-ценно инфо за мен беше, че те сканират растерно и поредово земята, по старите по един път на 30мин, по новите на 15мин. А последния е такъв които не се върти по екваториална орбита, а минава над полюсите. Той се върти около земята 14 пъти на денонощие (това си е нещо около час и 40мин за една обиколка на земята - с тази скорост бих си идвал до БГ за около 6мин, хич не бих отказал) със скорост от малко над 7000м/с. Той е и доста близо до земята само на 830км ако си спомням правилно, докато другите са на много повече, но не помня колко, защото се улових че помня над 70000км но това е посто невъзможно, по скоро е било нещо от порядъка на 10000-30000км но разликата беше огромна.
Сега да мина и на по важното за днес. Отново имам нещо за Компютърните хитринки. От много време ме мъчеше, че като си пусна VPN-а към работата и ми се прецаква нета защото той слагаше като стандартен gateway машината на другия край на VPN-а с което практически ми скапва нета защото аз нямам достъп до интернет като съм тунелиран в локалната на работата. Това ми скапва чата и мейл клиента и не мога да браузя и затова трябваше да бързам да спирам тунела веднага като си свърша работата. Но сега открих как да подкарам и двете едновременно. Та:
АКО И ВИЕ ТРЯБВА ДА ПОЛЗВАТЕ CISCO VPN БЕЗ ДОСТЪП ДО ИНТЕРНЕТ ПРЕЗ НЕГО ЕТО КАК ДА СИ ПОДКАРАТЕ ВСИЧКО ЕДНОВРЕМЕННО:[ Добави коментар ]1. Вижте каква е подмрежата на локалната мрежа в която се логвате през ВПН-а. Да кажем че е 10.10.0.0/16. Това трябва да ви е ясно от преди това или пробвайте с IP-то на gateway-а когато сте пуснали ВПН-а. Това може да видите с командата route -n в реда с default назначение.
2. Ако не ползвате kvpnc, когато е спряно тунелирането, вижте си какъв е маршрутът по подразбиране. Тоест пак с route -n в реда с default назначение. Да кажем че е 192.168.1.1.
3. Ако ползвате директно vpnc клиента при извикването му добавете като подразбиращ се gateway това което сте открили по горе в файла с настройките за свързване. Как точно не мога да ви помогна защото не съм го правил и не ми попада в man-а на vpnc. Аз ползвам, ще го препоръчам и на вас kvpnc frontend-а за доста различни виртуални мрежи. Там в настройките ще намерите опцията за Cisco VPN - "Keep default route" тя трябва да бъде отбелязана. Сега в настройките на страницата за команди след свързване отбележето полето за активиране и добавете
route add -net 10.10.0.0 netmask 255.255.0.0 dev tun0
а за команди за след прекъсване на връзката :
route del -net 10.10.0.0 netmask 255.255.0.0 dev tun0
така на ръка добавяме път за достъп до ЛАН-а от другата страна на тунела. Естесвено имайте в предвид да си сложите верния IP и маска към него.
Така при всяко стартиране се добавя специално маршрута за лана и не се обърква подразбиращия се към интеренет път. Имате си нормално интеренет и само за локалната мрежа минавате през тунела.
Нужно ли е да споменавам, че ставате мишена за пробив на реалната мрежа зад VPN-а, защото сте открити за света а сте в мрежата. Който ви докопа ви държи за орехчетата и не само вас ами цялата ви мрежа. Така че като правите това си опичайте акъла да не сте отворени за света като швейцарско сирене през това време. Аз не нося отговорност за вашата глупост и още по малко за щети произлезли от нея при неправилното използване на този съвет.
Петък, 4 Май 2007
Тази сутрин тъкмо си допивах кафето, намузвайки се за работа и Пешо ми пусна един линк, намерил как може да се подкара драйвера на NVidia на 2.6.20 кернел без прекомпилиране на кернела и други гадости. Той се хвана и направи стъпките, както бяха описани и каза че бачкало. Аз пък четяйки описанието си реших, че това може да се пачне директно в makefile-а на драйвера и с едно малко скриптче преди инсталатора да се направи изцяло автоматизирано. И ей ме на три-четири часа писах и стъкмих едно доста прилично скриптче което в крайна сметка инсталираше последната бета на драйвера от до без да гъкне. Накрая пешо изкопа едно много прилично инструментче makeself, което между другото ползват и NVidia да си пакетират драйвера и в крайна сметка към 6 следобед първия пачнат драйвер на NVidia който може диретно да се пусне на стандартен Debian 2.6.20-1-xxx kernel беше готов. Пуснах го на nvnews.com форума и само след 20мин вече първите дърпачи се навързаха, около два часа по-късно получих и първата честитка за успешно използван драйвер. Естествено много работа днес не свърших но пък това си беше доста вълнуващо, а и най-вече се радвам да допринеса за нещо на Open Source общността, ами така де трябва да се подкрепяме. Даже си мислех това си е чиста форма комунизъм, ама не както го познаваме извратен от нашия свят, а чистия философски смисъл на света на матрицата - знание за всеки. ;-)
П.С. Понеже по-късно се сетих, че линка в поста от сл.ден може да не етолкова очевиден примерно след като сте кацнли тук от гугъл ето го и тук http://grizach.servebeer.com/.
[ Добави коментар ]Сряда, 3 Октомври 2007
Макар отдавна да не го бях чувал, лафа за новото е добре забравено старо важи много за тоя пост. Та преди време си спомням, че бях ползвал тоя начин за копиране на файлове прес ssh доста, но някак си тия неврони дето са съдържали знанието, са се загубили при някое дефрагментиране на мозъка ми. Става дума за следното
КАК ДА ПРОДЪЛЖА ФАЙЛ КОЙТО СЪМ ЗАПОЧНАЛ ДА КОПИРАМ С scp?Принципно scp не оставя никаква сервизна информация по незавършените файлове. Това значи, падне ви DSL-а или някой колега се спъне в кабела и бам файла прекънат, а самия scp няма продължаване. Е какво правим? Хвърляме се през балкона? Може, но има и по-добър вариант! Както казваме с Кекса: rsync is dsync (добре де лафа е от една опция на ядрото на линукс)
Става дума че започнат с scp файл може успешно да се продължи със следната команда.
1. Да предоложим файла е бил копиран така
scp someluzer@hiscomputer:/somepath/somefile ./
2. След като е гръмнало копирането пускаме rsync да го довърши така:
rsync [--progress] --partial --rsh=ssh someluzer@hiscomputer:/somepath/somefile ./ * --progress е само ако искате да следите как върви трансфера
Това практически е всичко. Не е нещо от което да ахне човек, даже си common knowledge ама все пак си мисля че може да направи деня на някой и друг българоговорящ търсач на знание по лек.
[ Добави коментар ]Четвъртък, 1 Ноември 2007
Винаги съм се чудил как се правят добри 3D ефкти на огън. В 2D е лесно - има си простата формула - "температурата на пиксела е функция на тези около него от предишния фрейм и просто е въпрос на избор кои ще изберем и как ще ги комбинираме за да се получи сносен макар и неестествен пламък. Естествено може да се ползва и наслагане на анимации на реален пламък и при добър подбор пак ефекта е супер за сметка на малко повече памет. Нещата обаче стоят доста по-различно при третото измерение, защото пламъка може да бъде наблюдаван не само директно отстрани, ами и отгоре и отвътре дори. Това създава проблема, че пламъка не се разпространява в равнина а във пространството. Днес преди лягане се зачетох в книгата GPU Gems на NVidia Press, в която са представени много алгоритми за реалистичен рендеринг, предвидени главно за изпълнение на GPU-то на съвременни карти. МИсля да разкажа тук на български накратко, какво научих за генерирането на качествена анимация на 3D пламък от една глава в тази книга, и по ози начин и за себе си да си систематизирам нещата, че кой знае кога ще намеря време да ги пробвам.
Естествено най-добрия начин да се генерира реалистичен пламък е да се създаде триизмерна процедурна тектура на пламък, следвайки законите за движение на флуидите и термодинамиката добре познати ни (е добре де "ви") от физиката. Това би трябвало да не е супер трудно, но дори и да се преборите с тоновете диференциални уравениня накрая ще имате красив пламък които рендерва с 0,0001 фреима в час. По-добре да направим пламъка толкова жив, че никой, дори и най-заклетия ядрен физик да не ни мъмри за тотално нереалното му поведение. Затова хората предлагат да се ползват praticles които да са двуизмерни текстури на пламък, предварително анимирани и то за различни ракурси. Те ползват две анимации - една отстрани и една отгоре но и техни смесвания. За целта са създали една обемна текстура, която да съдържа двете анимации като слайсове от z измерението и една анимация за дим процедурно генерирана. Така могат да въртят анимацията като просто сменят едната координата на текстурата. За да стане цялото по бързо пламъците се рендерирата в по ниска резолюция от тази на цялата картина и се блендват после със помощта, на Z-Buffer-а и алфа канала на текстурата с пламъците. За да се наслагват добре пламъците, хората препоръчват да се ползват истински текстури с алфа канал, а не просто с OR да се наслагват текстурите защото ставал много изкуствен пламъка. Освен това за да се държи естествено при движение на неговия източник, пламъка трябва да се се мести след него, но и до някъде да остава да изтлее на старите места, за да не се претоварва машината с прекалено много частици (е добре де как да преведа particles), са приложили следния трик - всяка частица има като параметър привързаността си към източника на пламъка, ако е силно привързана то пламъка се тътри след източника, ако е слабо остава където е - тоест със времето частиците остават да си висят във въздуха докато не изфирясат. Това е доста реалистично, защото вихрите които би създал движещ се във въздух обект създават подобен ефект и в действителност.
И това е май цялата философия представена супер на кратко, че и да не ме омъмрят за нарушаване на аторските права - приевете го за нещо като преглед на главата. Иначе като цяло GPU Gems е жестока поредица, а преди дни излезе и третата част, нямам търпение да ми попадне в ръчичките и вече е поръчана на работа.
[ Добави коментар ]Петък, 2 Ноември 2007
След вчерашния пост за триизмерна анимация съм зарибен да напиша още малко смислени думи. Може би под въздействието на бирата :-).
Искам да кажа, че си мислех преглеждайки за какво съм писал досега, че съм споменавал за някой стъпки, които съм предприемал да направя гризача малко по неприветлива цел за дребното скрипт киди (не не се заблуждавам, че мог да спра един истински добър български звяр). Но поне спирайки достъпа до ssh за всички потребители на системата които няма какво да правят отдалечено на нея и затягайки малко други услуги на нея е добре, но пък коментара на Марин за тъпаците, които пробват брутфорс на пароли беше дълго време причина да губя време ровейки из auth.log-а за някой успешен опит. Известно време след това попаднах на ето тази екстра - OSSEC. Това е програмка, за активно наблюдение и контрол на достъпа до дадена машина. Тя заедно със средствата за пасивен контрол дават възможност да се намали риска от нежелани посетители. Идеята е проста - програмката следи логовете на една камара програми и като засече, нещо нередно и праща мейл, сми или каквото и да е и/или пуска някаква програмка на сървъра.
Пример 1: ТЪПАК1 пробва брутфорс на паролата за потребителско име iamstupid, какъвто няма - 5 опита и OSSEC дига тревога - multiple login attempts for unknown user iamstupid и го слага в drop листата за 30 мин.
Пример 2: ТЪПАК2 пробва с root - същата работа, но понеже е бил малко по умен има цеели 6 опита, ама като се оцвъка получава цял час наказание. От една страна това разграничаване е добре, но пък издава валидни потребители. Това обаче не е много страшно ако сте пуснали само потребителя guessthisdifficultname за отдалече достъп.
И накрая пример 3: ТЪПАК3 или ВИРУС1 пробват експлоит на apache-то. Дори и да успее, опита им бива прихванат и пак биват резнати, освен това процеса може да бъде рестартиран за да се избегне евентуално да остане някоя отворена вратичка.
Естествено всичкото това нещо, може да се настройва и човърка много, може да му се пишат допълнителни правила, а и се обновява относително често. Като цяло, съм доволен от постигнатите резултати с него, вече близо година го ползвам и времето, което отделям да проверя здравето на сървъра намаля поне с фактор 20.
[ Добави коментар ]Събота, 12 Януари 2008
Малко още ще се върна на програмката gdesk, става на няколко пъти дума за нея, но до сега не бях отговарял на важния въпрос, които явно доста се питат "как е ползва аджеба тая програма". Проблема е там, че програмата е супер лесна, ама трябва да я пуснем първо в функциониращ режим, защотоо като я сложим и при първото пускане получаваме един празен екран сив. И една малка иконка Х в ъгъла и това е. Проблема е, че програмата няма стандартна вградена тема, а трябва сами да си заредим някоя или да си я направим. Зареждането става като от менюто, което се появява на десен софт бутон или с клик по екрана (ако имате телефон с тъч скрийн), изберете Design. После давате на Load и си избирате тема, която преди това сте свалили от сайта на програмата или нейзе из нета. Накрая избирате Done от това меню и сте готови.
Аз пробвах повечето, но накрая се хванах и си направих сам една с това, което аз най-често ползвам и с достатъчно големи икони, че да мога да ги блъскам с пръст направо. Освен това така не се налага да изчиствам иконите към 100 програми които нямам. Ето и една снимка от телефона ми с моята тема:

Сряда, 16 Януари 2008
Далеч не съм профи потребител на Firefox но ще споделя накратко кои плъгини имам инсталирани при мен и съм напълно доволен с тях и честно казано за ежедневната ми работа не чуствам нужда от друго.
всички те могат да се намерят на сайта за разширения на firefox - https://addons.mozilla.org/en-US/firefox/.
1. DownThemAll - много е полезно ако трябва да сваляте камари от файлове линкнати от дена страница (например индекс някакъв) поддържа продължаване, едновременно сваляне, филтриране и много други.
2. Image Zoom - с бутоните на мишката и скролера си увеличавате и намалявате всички картинки на сайта удобно а?
3. Password exporter - за да не се чудите след време ъъ ква беше тая парола - експортирам, пускам gpg на файла и като се сгафи мозилата импортирам
4. Media Player Connectivity - специално за Линукс потребители, най лесния начин да ползвате старници с мултимедийни връзки
5. Firesomething - сменя името на браузъра произволно на всеки старт, може да го праща и в http хедъра така - Например аз в момента ползав Mozilla Superrhino. Якото е, че всеки може сам да си допише прилагателни и съществителни с които се образува името - например ще е забавно разглеждайки си access.log-а да видити user agent Mozilla Turbotupalka или Mozilla Megatriper.
6. Накрая, но далеч не по важност Adblock за да не се трепете с хилядите гадни и тъпи флашове по страниците.
7. И за развлечение имам StumpleUpon - ако имате време за губене просто цъкате на бутона Stumple и то ви плюе произволна страница от предварително зададените в профила теми.
Имам още 5-6 плъгина инсталирани, но те или не работят правилно или не са толкова ценни. Приемам съвети за други незаменими помощници
[ Добави коментар ]Събота, 10 Февруари 2007
Най-сетне пак събота! Не че мога да спя до много късно де, но пак се понаспах повече от нормалното. Освен това свърших и доста работа по дипломната, така ме утре би трябвало да мога да довърша провераката и и допълненията за първото предаване. Само не ми остана време да почета за изпита следваща седмица ама ще го наваксвам утре него. Вечерта рекох да ида до Дени да си кача писанията ми в блога до тук и... О! Ужас! Гризача беше изчезнал. Мдаа, телефония ми секретар се обажда, което е добър знак, че гризача не е гръмнал, но явно не се усетил вчера да си оправи записа в no-ip.com DDNS-а, който рисолвва сървъра ми. Добре поне, че в сряда заминавам за Дармщат и ще го оправя на място. Погледахме и малко сратки анимациики, докато бях там, една ме зариби много здраво. Казва се The Catedral - супер яка фентъзи анимация и много добре направена. Освен това бях и нагостен като супер комбо бонус към гостуването ми, за което дори вдигнахме "твърде много шум" според разбиранията на съквартирана и, ама той да си гледа работата, важното е да е забавно за нас ;-).
[ Добави коментар ]Comments, texts and pictures not signed by me are property of their respective owners.
(c) 2003-2005 by Georgi Chorbadzhiyski. Some rights reserved.
Страницата е генерирана от Glog v3.50
Сега четейко това ми писание виждам една малка неточност относно къде е файлът на кернела. Та vmlinuz и initrd.img са си винаги в /boot/ и на повето свястни дистрото има в главната линк към текущо използваните версии (даа може да имате по 100 различни кернела на склад в /boot/), заблудата ми едно време е дошла от факта, че на моето SuSE или аз не съм го хванал нещо или не е правило тези линкове в руута. Мерси на Петър, който още тогава ме коригира но чак сега ми идва акъла да го отбележа поне в едно коментарче. Е поне това не беше critical bug :)
Написа ___Jul___ (email) (www) на 04-Dec-2006 02:40