Защо не искам да съм системен администратор в България

19.05.2008 Иван Давидов

Вчера ми се случи една случка, която за пореден път ме накара да си спомян защо не желая да работя като системен администратор в България.

И така, един хотел (няма да споменавам имена, за да не се получи нито безплатна реклама, нито злословене от моя страна) снощи вечерта го беше закъсал много здраво, защото:

  1. Компютърът на рецепцията не работеше.
  2. Няма резервен компютър с работеща система.
  3. Няма на място кой да поддържа системата в случай на нужда.

Явно кармата ми е такава - да се занимавам с хотели. :) Преди години правих сайта на един голя-а-а-ам хотел в центъра на Плевен, а сега ми се наложи да се занимавам с IT инфраструктурата на хотел в София.

Ето какви са изводите от проведеното “лечение”:

  1. Няма денонощна поддръжка на IT инфраструктурата.В такива случаи е само въпрос на време да се стигне до ситуация като снощната.
  2. Липсваше документация за софтуерното обезпечение (казано по-просто указания как се работи с хотелската програма) .
  3. Липсваше документация за мрежовата топология.
  4. Компютърната грамотност на персонала не е на ниво.

Конкретният проблем беше, че заради некомпетентността на някой от персонала на хотела, с компютъра на рецепцията беше станало нещо толкова лошо, че дори не искаше да запали. Много лошо, тъй като явно този компютър е основния за софтуера (базата данни е на него, а всички клиенти очевидно не могат да се свържат, тъй като компютърът не искаше да запали).

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

  1. Компютърът на шефа на хотела нямаше работещо оптично устройство. Дори да имаше такова, при него също липсва достъп до базата данни.
  2. Компютърът за връзка с интернет нямаше интернет(!!!). Нямаше отговор от телефонната поддръжка на БТК (22:00, неделя).

Сега е моментът да спомена, че компютърът на рецепцята също имаше оптично устройство, но и то не работеше. Някой много сериозно се бе постарал да нямам достъп до външната периферия на всички компютри.

Обобщение:

  1. Хотел, който не може да обслужва по компютърен път хотелските резервации и кой знае какво още.
  2. Никаква информация за начина на работа на софтуера (трябваше да правя reverse engineering, докато разбера къде е базата данни).
  3. Никаква информация за мрежовата топология (отново изгубих време докато разбера кое как е свързано, за да знам какви “фокуси” мога да си позволя да правя).
  4. Лошо стечение на обстоятелствата. В неделя вечерта нямаше телефонна поддръжка нито от страна на БТК, нито от страна на обслужващата IT инфраструктурата фирма.
  5. И още …

Главният проблем е , че чисто по български ми се наложи да навлизам в непозната за мен IT инфраструктура, като в същото време хората там разчитаха на мен да оправя проблеми, които са възникнали в следствие на неквалифицираността на персонала да ползват компютърна техника.

Как можеше да се избегне всичко това:

  1. Първото и най-важно нещо - квалифициран персонал. Никой не може да се защити от хардуерен проблем, но хората могат да се опитат да п”пазят” софтуера колкото се може повече. В случая: необходимо е да се обясни на хората, които имат достъп до основните компютри в хотела как точно да боравят с интернет и да проверяват сваленото съдържание за вируси, троянци и т.н.
  2. Абонаментна поддръжка. Тъй като повечето хора (понякога и аз) са мързеливи и не искат всеки път да проверяват за вируси това, което свалят от интернет, крайно наложително е да има абонаментна поддръжка на цялата IT инфраструктура.Хорат, които отговарят за тази поддръжка трябва да са наясно както със софтуера, който се използва, така и с хардуера и мрежовото оборудване (системни администратори).
  3. Документация, документация и пак - документация! Ако първите две точки не са спазени - тогава е крайно наложително да има адекватна документация, написана на грамотен технически език, която да описва хардуерната инфраструктура, както и документация, описваща работата на софтуера. Тези две документации са от най-съществено значение при възникнал кризисен момент.

Ето затова не искам да работя като системен администратор в България - просто са твърде малко местата, където нещата се правят както трябва. В повечето случаи всичко се прави бързо и без да се мисли за бъдеща поддръжка. Накрая е най-лесно да се повика някой като мен, който ако може да се оправи в цялата тази бъркотия - ОК, а ако не може - здраве.

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

В петък получих предложение да работя като системен администратор в полицейската школа в Симеоново. Тактично отказах, тъй като съм почти 100% сигурен, че и там ще се сблъскам със същия манталите - “по български”…

Намира се в категории: Всичко, Размисли, Технологии | Няма коментари »

Quake 2 за Java, или Jake2 (GPL 2)

05.05.2008 Иван Давидов

Тъй като многото почивни дни покрай великденските празници се отразяват негативно на програмистката ми душа, днес цял ден се оглеждах за ресурси, свързани с правенето на игри за Java и по-специално за 3D игри.

След не много лутане попаднах на един изключителен проект - Jake2. Това е порт на енджинът на Quake 2, само че написан изцяло на Java. Първоначално не се впечатлих кой знае колко, все пак аз започнах търсенето с цел да видя какви технологии са измислили хората, за да визуализират 3D обекти, а и първият ми сблъсък с Java 3D API от преди няколко години ми беше оставил болезнени спомени за производителността…

И така, свалих binary дистрибуцията и… още в самото начало се впечатлих. Енджинът засече, че нямам Quake 2 на компютъра си и учтиво ме попита дали искам да си дръпна демото, което е безплатно. Казах “да”, взехме се и заживяхме дълго и щастливо! :)

След като демото се изтегли, трябваше да почакам малко. Всъщност много. Ехидно се усмихнах, очаквайки минимална производителност от машината си, вероятно без звук, с не повече от 7-8 FPS…

Да, ама не! Играта тръгна от раз, не съм засичал FPS, но вървеше супер гладко, звукът беше на ниво, нямаше никакви насичания, а играта се играе така, сякаш играеш оригиналния Quake 2!

За пръв път в живота си останах с положително впечатление от Java в 3D света. И то не къде да е, ми в областта на игрите, където изискванията са на ниво!

Толкова много се впечатлих от това, че всичко тръгна от раз, че реших да си дръпна сорса на енджина.

Ето тук се впечатлих още повече, защото въпреки че проектът използва няколко много сериозни външни зависимости, всички те са включени в сорса. Освен това Jake 2 използва Ant скриптове, като Ant дистрибуцията идва заедно със сорсовете и на практика за да се build-не проектът е необходимо само да се стартира един .bat (или .sh) файл. Единствената външна зависимост, която не идва със сорсовете е JavaSE! :)

Като се позарових малко в сорсовете намерих няколко неща, които не ми харесаха много, но като се има предвид какъв е мащабът на проекта, моите забележки са повече от нищожни:

  1. В ant скриптовете има твърде много hard coded елементи. Оправих го за по-малко от 5 минути, така че не е болка за умиране. В рамките на същите тези 5 минути промених скриптовете така, че крайните дистрибуции да се създават в папка, различна от основната, тъй като по default всичко се генерира в основната директория на сорсовете, което води до “претрупване” на файлове и директории в основната директория.
  2. В сорсовете се използва таймера на Sun, който е част от недокументираните класове, които се намират в подпакетите “sun.*”. По време на изпълнение на програмата runtime се определя до кои таймери има достъп Jake 2 и ако използваме Java SE 5, тогава се взима таймерът за наносекунди, иначе се прави тест за Sun таймера и ако това също пропадне, тогава се взима класическия милисекунден таймер. Всичко това е много хубаво, обаче какво ще се получи, ако в JDK 7 например (В JDK 6 таймерът е наличен) Sun-ския таймер изчезне? Runtime няма да има проблеми, но проектът няма да може да се компилира.С изтриването на един файл и закоментаряването на няколко допълнителни реда тази зависимост също отпада, но след като направих промените, реших да върна нещата пак така, както си бяха преди.
  3. Като цяло портът на Quake 2 енджинът е повече от успешен, но четимостта на кода е сведена до почти абсолютната нула, тъй като идеята не е била да се направи 3D енджин, който да се ъпгрейдва, а по възможно най-бързия и безболезнен начин да се “мигрира” кода от “C/C++” на Java. Съответно в сорсовете на Jake2 “обитават странни същества (класове) с имена като “cvar_t.java”, “M.java” и “V.java”. Но лошо няма проектът все пак работи, а ако някой не разбира от “C/C++”, тогава според мен изобщо не бива да се захваща и с Java. Хубаво е да се знае от къде произлизат корените на всеки език за програмиране.

Тъй като се впечатлих страшно много от проекта, накрая реших да си дръпна сорсовете директно от CVS repository-то на Source Forge. Е… малко се разочаровах, проектът е изоставен от вече две години, но пък и то какво да иска човек от енджин, който веднъж вече е направен. Както вече казах, идеята не е била да се доразвие енджина на Quake 2, а да се направи порт на Java за него.

Понякога (рядко, но се случва) имам свободно време и ако сорсовете бяха малко по-четими и по-добре документирани, бих се заел да направя някои дребни корекции, но пък така интригата е по-голяма и е по-интересно.

Препоръчвам на всички Java маниаци, които се чудят дали има 3D игри, писани на Java, да хвърлят едно око на Jake2, определено си заслужава.

Намира се в категории: Всичко, Размисли, Технологии | Няма коментари »