Корпоративен урок 1:
Мъж влиза под душа, докато съпругата му точно привършва със своя, когато
на външната врата се позвънява. Жената набързо увива една кърпа около себе
си и тича да отвори. Отвън стои Боб – съседът. Преди да е казала и една дума,
той предлага „Ще ти дам 800$ ако свалиш тази кърпа!“. След като помислила за
момент, жената свалила кърпата и застанала гола пред Боб. Секунди по-късно
той й връчил 800$ и си тръгнал. Жената се загърнала отново и се върнала в
банята.
„Кой беше?“ – попитал съпругът й. „Боб – съседът“ – отговорила тя.
„Чудесно!“, казал мъжът, „Спомена ли нещо за 800-те долара, които ми дължи?“
Бизнес поука: Ако навреме споделите с акционерите си важна информация,
отнасяща се до кредит и риск, бихте могли да избегнете изобличаване.

Корпоративен урок 2:
Свещеник предложил на монахиня да я откара до манастира. В един >момент,
тя скръстила крака, така че единият й крак се оголил. Отецът едва не
катастрофирал. След като овладял колата, той леко прокарал ръката си по крака
й. „Отче, припомнете си Псалм 129“ – казала монахинята. Свещеникът
отдръпнал ръката си. Но малко по-късно, докато сменял скорости, той отново
поставил ръката си върху крака й. „Отче, припомнете си Псалм 129“ – казала
монахинята отново. „Прости плътската ми слабост, сестро“ – извинил се отецът.
След като пристигнали в манастира, монахинята се прибрала. Свещеникът
бързо изтичал в църквата за да погледне Псалм 129. Същият гласял: „Давай
напред и търси, нагоре ще откриеш благоденствие.“
Бизнес поука: Ако не сте добре информирани в професията си, рискувате да
пропуснете чудесни възможности.

Корпоративен урок 3:
Търговският представител, деловодителката и управителят на фирма отиват
да обядват заедно. По пътя намират старинна маслена лампа. Разтриват я и
отвътре се появява един Джин. „Ще изпълня по едно желание на всеки от вас“ –
казва той. „Първо аз! Първо аз!“ – скача деловодителката – „Искам да бъда на
Бахамите, да карам джет, без да се интересувам от нищо“. Пуф! И изчезнала.
„Сега аз! Сега аз!“ – крещи търговският представител – „Искам да бъда в Хавай,
да разпускам на плажа с личен масажист, безкраен запас от коктейли и любовта
на моят живот“. Пуф! И той изчезнал. „Твой ред е“ – казал Джина на
управителя. „Искам тези двамата обратно на работните места след края на
обедната почивка“ – отговорил той.
Бизнес поука: Винаги оставяйте първата дума на шефа.

Корпоративен урок 4:
Гарванът седял по цял ден на дървото, без да прави нищо. Заекът го попитал –
„Мога ли и аз като теб да седна и да не правя нищо по цял ден?“.
„Разбира се, защо не“ – отговорил гарванът. И така, седнал заекът на земята и
си почивал. Унесъл се, една лисица изскочила от храстите и го изяла.
Бизнес поука: За да седите без да правите нищо, трябва да сте на висока
позиция.

Корпоративен урок 5:
Пуякът разговарял с бика. „Как ми се иска да полетя и да кацна на това дърво“
– въздишал той – „но не ми достига енергия за да махам толкова силно с крила“.
„Защо не клъвнеш малко от фекалиите ми“ – предложил бикът – „те са силно
енергийни и хранителни“. Пуякът се надвесил над една от неговите купчинки и
не след дълго открил, че бикът е прав – вече имал енергия и успял да достигне
най-долният клон на дървото. На следващият ден, след като си похапнал още от
чудодейната смес, той кацнал на по-горният клон.
Най-сетне, няколко дни по-късно, пуякът гордо се перчил и вдигал врява от
върха на дървото. Не след дълго бил забелязан от фермера, който го свалил с
един изстрел на пушката си.
Бизнес поука: Лайняните номера могат да ви изведат на върха, но не и да ви
помогнат да се задържите там.

Корпоративен урок 6:
В Африка всяка сутрин газелата се събужда с мисълта, че трябва да надбяга
най-бързия лъв, за да остане жива. Всяка сутрин лъвът се събужда с мисълта, че
трябва да надбяга най-бавната газела, за да не умре от глад.
Бизнес поука: Няма значение дали си газела или лъв: когато слънцето изгрее,
по-добре да станеш, за да изпревариш другите.

Корпоративен урок 7:
Мъж отсяда в хотел в Австралия. В стаята има компютър и той решава да
изпрати електронно писмо на жена си. Обаче случайно сбърква адреса и без да
осъзнае грешката си изпраща писмото. В същото време някъде в Хюстън,
вдовица се връща от погребението на съпруга си. Вдовицата решава да си
провери електронната поща за писма от роднини и познати. След като прочита
първото писмо, тя пада възнак в безсъзнание. Синът на вдовицата дотърчава в
стаята, намира майка си на пода и хвърля поглед на екрана, на който пише: До:
моята любяща съпруга Тема: пристигнах Дата: 7-ми септември, 2005 г. Знам, че
ще се изненадаш да ме чуеш. И тук имат компютри вече, и можеш да изпратиш
писма на своите любими. Току-що пристигнах и отседнах тук. Виждам, че
всичко е приготвено и за твоето пристигане утре. Нямам търпение да се видим!
Надявам се твоето пътуване да е също безпроблемно, като моето.
Послепис: Адски е горещо тук долу!
Бизнес поука: Уверете се, че комуникацията се осъщестява между
правилните страни. Иначе резултатите могат да не отговорят на
очакванията ви.

Корпоративен урок 8:
Джони искал да изчука едно момиче в неговия офис… Но тя си имала
приятел… Един ден Джони не издържал, отишъл при нея и предложил: „Ще ти
дам 1000 долара ако ме оставиш да те изчукам“. Но момичето го отрязало:
„НЯМА НАЧИН!“. Джони казал: „Ще бъда бърз, ще хвърля парите на пода, ти
ще се наведеш, а аз ще съм свършил преди да се изправиш“. Тя помислила за
момент и казала, че трябва да се посъветва с приятеля си… Позвънила на
гаджето и му разказала за случая. Момчето и отговорило „Искай му 2000
долара, прибери парите много бързо, той даже няма да успее да си свали
гащите!“ Така, че момичето се съгласило и приело предложението. Приятелят и
я чакал половин час да се обади. Най-накрая, след 45 минути чакане той и
позвънил и я попитал какво е станало. Тя му отговорила „Копелето хвърли
монети!!!“
Бизнес поука: Винаги обмисляйте всички аспекти на бизнес предложение
преди да се съгласите и да ви го начукат.

Корпоративен урок 9:
Когато тялото било създадено, всички части от него искали да бъдат Шефа.
Мозъкът казал: „Аз трябва да бъда шеф, защото контролирам всички функции
на тялото“. Краката казали: „Ние трябва да бъден шефове, защото ние
пренасяме мозъка наоколо, където поиска“. Ръцете казали: „Ние трябва да сме
шефове, защото ние вършим всичката работа и печелим пари.“ И така после
било сърцето, белия дроб, очите, докато накрая и задника поискал да бъде шеф.
Всички части започнали да се смеят на идеята. Тогава задника се блокирал и
отказал да работи. След известно време очите започнали да се затварят, ръцете
се парализирали, краката изтръпнали, сърцето и белия дроб изпаднали в
паника, а мозъкът изпаднал в треска. В края на краищата всички решили, че
задникът трябва да бъде шеф и нещата преминали. Всички части си вършели
своята работа, докато Шефът само си седял и изхвърлял навън боклуците
(лайната).
Бизнес поука: Не е нужно да си мозък, за да бъдеш шеф – всеки задник може
да бъде.

Корпоративен урок 10:
Една лястовичка летяла на юг, но студът я застигнал и премръзнала до смърт,
тя паднала в широко поле. През полето минала крава и се изсрала върху
птичката. Изпражнението стоплило лястовичката, тя се съвзела и радостно
започнала да чурулика… Минаваща наблизо котка чула чуруликането и
следвайки звука, извадила птичката от кравешкото лайно и я изяла.
Бизнес поуки:
1. Не всеки, който те засипва с лайна е твой враг.
2. Не всеки, който те вади от лайната е твой приятел.
3. Когато си затънал в лайна до гуша, недей да чуруликаш много-много.

Пффф досега не бях си играл с толкова големи цифри за subnetting. Няма да обяснявам самия процес има достатъчно изписано в нета, как чрез мрежовата маска се смята в коя позиция се изместват 1 и 0 и от там вече се разбира до къде свършва мрежовата част и започва хост частта. Имах доста интересната задачка закачка 2 /16-ки (сиреч 255.255.0.0) или за съвсем непросветените 2 х 65534 хост адреса да ги разделя в 2 региона с по няколко мрежи – единия  с изисквания за 32к хоста, 16к хоста и 8к хоста които от своя страна трябваше да разделя на по- 4 равно подмрежи. Втория регион имаше изискване за 4к хоста, 2к хоста и 1к хоста, и пак като предишната зона всяка една мрежа на 4 равни подмрежи 😆 По принцип съм доста добър в subnetting-а но досега не си бях играл с мрежи в такива мащаби. Падна едно красиво голямо смятане но поне придобих опит с доста по големи размери от това да разделям /24-ки което се прави спокойно наум. Сега остана всички мрежи да бъдат разхвърляни по устройствата да се направят рутациите и мрежи да заработят 😀 хахаха. Диаграмата с устройствата ми наброяваше над 30 като престанах да ги боря – красота 😎

Понякога си има дни в които нищо не върви 🙂

В такива случай ни остава просто да се надявам че утре ще е по добре от днес 🙂

Преди да започна с глупостите искам да кажа, че не съм много напред с web hosting-а и всичко което ще напиша е опит които съм придобил в последните 2-3 месеца. Администрирам едни доста натоварен VPS по посещаемост според tyxo е в топ 80 но влиза в топ 70 ;). Та мисълта ми е, че вече след толкова време придобих разни навици и достигнах до добрите практики по един или друг начин (обикновено по трудния) :D. Няма да пиша или да навлизам в детайли на конфигурацията никак даже. По скоро ще споделя идеите над които да помислите.

  1. Обновявайте софтуера редовно. Apache, php mysql всичко си иска обновления. Дали за да закърпите дупки в сигурниста, дали заради поправени бъгове или нови възможности. Винаги дръжте софтуера си в крак с времето. По принцип рядко се пробива един сървър през апликациите обикновено през дупки в кода на хостваните неща се пробива ама да не разчитаме само на това.
  2. Apache – web server-а ви не е желателно да има активни повече модули от тези които реално ползвате. Колкото повече модули по- бавна работа.
  3. Повече потребители на същия сървър – opcode cache. Преди време писах пък и zerdion направи доволно тестове и се вижда реално ползата от тая магия. В моя случай съм избрал eAccelerator защото в реална работна среда той показва най добри резултати с пуснати всички настройки към него. По бързо зареждане по малко ядене на ресурси което респективно означава повече потребители.
  4. Притискат ви с трафика – gzip. Най лесния начин да намалите реални трафик които правите е с gzip компресия на http отговорите към клиента. Mod deflate е решението за apache. За други http server-и не съм проучвал въпроса :). Реално около 50% ми падна трафика при компресия върху html,css,js,xml. Трябва да проверя дали мога да компресирам и друг вид съдържание ще е интересно. Защото реално снимките са съдържанието което прави най много трафик в един сайт.
  5. mysql serer – горещо ви препоръчвам ако не сте се наградили с версия 5.1 да го направите. Като цяло Oracle имат някакъв малък опит с бази данни 😆 и тоя опит са го вкарали добре в 5.1 версията не съм пробвал 5.5 но и това планувам да стане скоро.  Определено се ускори работата на sql заявките може би леко падна натоварването но с не повече от 5-6% но a пък и новите функционалности за програмистите са прекрасни. Основаната такава partitions. При надграждане внимавайте какви настройки имате в my.cfg Не всички стари опции са валидни, също е добре да махнете старите библиотеки поне при CentOS 5.5 направиха проблеми при Debian нямах такива ядове. След това си вижте mysql log-а защото някои от опциите са с различни имена и е добре да ги промените ако след време минете към 5.5 да не се чудите защо не палва конфигурацията ви.
  6. sql заявките.  Задължително разрешете опцията за записване на slow query. По тези дневници можете да върнете информация на програмистите ако не сте вие за бавните заявки да се оптимизират. Колкото по малко такива заявки по малко натоварване за сървъра ви 😉
  7. Малко защита – сменете подразбиращия се порт на ssh-а ви няма нужда смотани ботове да се опитват да ви хакват. Apache го подсигурете с mod_security доста полезен модул прави филтрация на доста шитни – sql inj, rfi DDoS и прочие. Няма да спре голям хахор ама поне ламерите ще ги отсее. PHP е добра идея да се защити с Suhosin. Може да се сложи като допълнително разширение или направо като пач в php кода. Аз лично предпочитам първия по изчистен ми се струва.

Като за начало това са нещата които се сещам. Не са много а като се замисля съм направил доста оптимизации по сървъра но много от тях са доста специфични според ситуацията и няма смисъл да ги обяснявам тях като например лимитации на кешове или пък колко процеса има вдигнато apache-то. Вероятно с времето ще се сещам и за още неща които са как да кажа част от малките неща които дават големия резултат. Машината е доста добре оптимизирана за сравнение ние правим на 20к уникални посещения на ден и сме на най ниския възможен vps план load time на страниците ние не надхвърля 1,5-2 сек или ако го надхвърля е заради външните източници на реклами иначе самата страница се изплюва за части от секундата. Хора с близки позиции до нас са с не оптимизирани сървъри с доста повече ресурси от нашия и имат същите резултати. Общо взето оптимизиране му е майката и пиенето на бира бащата 😆

ps Песничката леко се връзва с тематиката 😀

От близо година не бях работил по демочето ми NUKI. Днес ми остана време да пооправя нещата защото имаше доста неща които не си бяха съвсем добре. Добавих малко нова функционалност. Пренаредих кода, с повече функции така го скъсих и стана по прегледен.

Основната нова функционалност която вкарах е signal trap-а. В някои момент както си върти демона dreambox приемника решава да го убие и по този начин спиря мониторинг процеса ми, което само по себе си е доста неприятен момент. А няма как да разбера какво се случва тъй като мястото за логове е безбожно малко и трябва да правя правя сложни схеми с мрежови споделяния с които не ми се занимава. В обши линии signal trap-a е приятното свойство на bash скриптовете да прихващат сигнали от изходи или такива подадени им от kernel-a чрез kill да речем 😉 и по този начин можем да предотвратим някои от незабавно последващите събития. Само да вмъкна че SIGKIL или kill -9 не може да бъде прехванат и предотвратен, така е по дизайн в ядрото. То терминира директно подадения му PID. Сега и съответния код


#trapping signals I know -9 dosent work but we try it just in case ; )
trap on_exit 0 14 1 2 9 13 15 6 8 4 3 11 5
on_exit () {
make_debug 10 #unexpected error
#reboot now if we hawe trapped signal
reboot -d 0
exit 0
}

Първия ред ни декларира какво действие да се предприеме и при кои сигнали ще прихващаме повече за сигналите man signals 😉 В случая мен тези ме интересуват. Както се вижда водят до една проста функциика която прави дебъг съобщение и рестартира приемника. Несъм обеден, че ще доведе до резултата които очаквам, понеже мисля че всичко което пречи е избива с kill -9 но нищо не пречи да се пробва.

Другите кардинални промени са функциите повечето неща които се повтарят от кода ги наблъсках в функции, че беше малко неприятен за гледане не, че сега е де 😉 Имах една лека драма с return в bash-а – сложих си return в една функция и очаквам поведение като всички други познати ми езици за програмиране, но се оказа че return връща само integer стойности и то максимум 2 😀 а аз исках да ми върне string. Настана една грозна свинщина. Решението на проблема е елементарно


#---cuted---

if [ $T -eq $N ]
 then
 echo "Cam is down! Reboot..."
make_debug 4 # cam is down
 else
echo $rcam
 fi

# ---cuted----

#finding real cam1
 rcam1=$(find_cam $cam1)

Първата част е края на функцията ми и чрез echo изплювам резултата.  Взимането му е елементарно с последния ред в горния пасаж.

Хммм мисля, че това е интересната част от кода.

Искам да изкажа благодарност на вдъхновението 😉

http://www.youtube.com/watch?v=SilMJ0O13UI&feature=related