| BZIK.INFO |
|
BZIK.INFO |
|
|
{678} {677} {676} {675} {674} {673} {672} {671} {670} {669} {668} {667} {666} {665} {664} {663} {662} {661} {660} {659} {658} {657} {656} {655} {654} {653} {652} {651} {650} {649} {648} {647} {646} {645} {644} {643} {642} {641} {640} {639} {638} {637} {636} {635} {634} {633} {632} {631} {630} {629} {628} {627} {626} {625} {624} {623} {622} {621} {620} {619} {618} {617} {616} {615} {614} {613} {612} {611} {610} {609} {608} {607} {606} {605} {604} {603} {602} {601} {600} {599} {598} {597} {596} {595} {594} {593} {592} {591} {590} {589} {588} {587} {586} {585} {584} {583} {582} {581} {580} {579} {578} {577} {576} {575} {574} {573} {572} {571} {570} {569} {568} {567} {566} {565} {564} {563} {562} {561} {560} {559} {558} {557} {556} {555} {554} {553} {552} {551} {550} {549} {548} {547} {546} {545} {544} {543} {542} {541} {540} {539} {538} {537} {536} {535} {534} {533} {532} {531} {530} {529} {528} {527} {526} {525} {524} {523} {522} {521} {520} {519} {518} {517} {516} {515} {514} {513} {512} {511} {510} {509} {508} {507} {506} {505} {504} {503} {502} {501} {500} {499} {498} {497} {496} {495} {494} {493} {492} {491} {490} {489} {488} {487} {486} {485} {484} {483} {482} {481} {480} {479} {478} {477} {476} {475} {474} {473} {472} {471} {470} {469} {468} {467} {466} {465} {464} {463} {462} {461} {460} {459} {458} {457} {456} {455} {454} {453} {452} {451} {450} {449} {448} {447} {446} {445} {444} {443} {442} {441} {440} {439} {438} {437} {436} {435} {434} {433} {432} {431} {430} {429} {428} {427} {426} {425} {424} {423} {422} {421} {420} {419} {418} {417} {416} {415} {414} {413} {412} {411} {410} {409} {408} {407} {406} {405} {404} {403} {402} {401} {400} {399} {398} {397} {396} {395} {394} {393} {392} {391} {390} {389} {388} {387} {386} {385} {384} {383} {382} {381} {380} {379} {378} {377} {376} {375} {374} {373} {372} {371} {370} {369} {368} {367} {366} {365} {364} {363} {362} {361} {360} {359} {358} {357} {356} {355} {354} {353} {352} {351} {350} {349} {348} {347} {346} {345} {344} {343} {342} {341} {340} {339} {338} {337} {336} {335} {334} {333} {332} {331} {330} {329} {328} {327} {326} {325} {324} {323} {322} {321} {320} {319} {318} {317} {316} {315} {314} {313} {312} {311} {310} {309} {308} {307} {306} {305} {304} {303} {302} {301} {300} {299} {298} {297} {296} {295} {294} {293} {292} {291} {290} {289} {288} {287} {286} {285} {284} {283} {282} {281} {280} {279} {278} {277} {276} {275} {274} {273} {272} {271} {270} {269} {268} {267} {266} {265} {264} {263} {262} {261} {260} {259} {258} {257} {256} {255} {254} {253} {252} {251} {250} {249} {248} {247} {246} {245} {244} {243} {242} {241} {240} {239} {238} {237} {236} {235} {234} {233} {232} {231} {230} {229} {228} {227} {226} {225} {224} {223} {222} {221} {220} {219} {218} {217} {216} {215} {214} {213} {212} {211} {210} {209} {208} {207} {206} {205} {204} {203} {202} {201} {200} {199} {198} {197} {196} {195} {194} {193} {192} {191} {190} {189} {188} {187} {186} {185} {184} {183} {182} {181} {180} {179} {178} {177} {176} {175} {174} {173} {172} {171} {170} {169} {168} {167} {166} {165} {164} {163} {162} {161} {160} {159} {158} {157} {156} {155} {154} {153} {152} {151} {150} {149} {148} {147} {146} {145} {144} {143} {142} {141} {140} {139} {138} {137} {136} {135} {134} {133} {132} {131} {130} {129} {128} {127} {126} {125} {124} {123} {122} {121} {120} {119} {118} {117} {116} {115} {114} {113} {112} {111} {110} {109} {108} {107} {106} {105} {104} {103} {102} {101} {100} {99} {98} {97} {96} {95} {94} {93} {92} {91} {90} {89} {88} {87} {86} {85} {84} {83} {82} {81} {80} {79} {78} {77} {76} {75} {74} {73} {72} {71} {70} {69} {68} {67} {66} {65} {64} {63} {62} {61} {60} {59} {58} {57} {56} {55} {54} {53} {52} {51} {50} {49} {48} {47} {46} {45} {44} {43} {42} {41} {40} {39} {38} {37} {36} {35} {34} {33} {32} {31} {30} {29} {28} {27} {26} {25} {24} {23} {22} {21} {20} {19} {18} {17} {16} {15} {14} {13} {12} {11} {10} {9} {8} {7} {6} {5} {4} {3} {2} {1} Читал я Википедию, а именно статью про тамплиеров. Дальше пошёл «автостопом» — знаменитое википедийное «смотрите также». Дохожу до «Ангелов и демонов» Дэна Брауна, перехожу на «Код да Винчи» и попадаю на статью о теориях заговора. Скроллю вниз; на абзаце о масонском заговоре Аутпост выдаёт: «Викимедиа сканит твои порты, прибить?» В течение десяти минут доступ к Вики получить я не мог. Кто-то ещё сомневается? Звонок. Мой начальник берёт трубку, слушает, начинает объяснять. По разговору понятно, что шеф явно общается с кем-то из наших пользователей. Под конец слышу: — И нажмите три раза на Escape. Ну, на самую левую верхнюю клавишу. (Пауза.) Ну что, получилось? Ладно… Начальник кладёт трубку. А мне любопытно ведь: — Саш, а почему три раза-то? Ты что-то в своей проге поменял? — Не-е, не менял — одного раза вполне достаточно. Просто они с первого раза никогда не попадают. Работаю на крупнейшем в стране коньячном производстве. Казусы случаются почти каждый день, поэтому уже не кажутся смешными или даже просто забавными. Впрочем, иногда бывают случаи из ряда вон. Про то, что достают из поп сограждан проктологи, а из оргтехники айтишники, я читал много, но сам сталкивался только с банальными скрепками. Недавно же достали мы с коллегами из принтера пластиковую детальку от лифчика. Принтер стоял, конечно же, в бухгалтерии — «его никто не трогал, это он сам». Когда женщинам продемонстрировали инородное тело, показания изменились: «Тут от вас мужики приходили позавчера, принтеры обслуживали — дык это они и сделали!» С разным софтом приходится иметь дело приходящим админам. Плохо пишутся офлайновые банк-клиенты, и каждый плох по-своему. Плохо пишут ПО в рамках выигранных в госконторах тендеров. До сих пор перед глазами, как живая, аксессовая «субдина» для бухгалтерии организации, имеющей шестьдесят одновременно трудящихся бухгалтеров — кто по RDC, кто напрямую — на одну несчастную .mdb. Но речь пойдёт не о них. Программу, которая на конкурсе кривых программ возглавляла бы жюри, написал иностранный специалист. Нет, не индус — болгарин. Во избежание узнавания реальных лиц, с которыми ещё работать и работать, предметная область в повествовании будет абстрактной. Многие в курсе существования понятия нормализации реляционных баз данных. И некоторые даже знают, что есть формы этой самой нормализации — от первой до пятой. Но никто никогда не сталкивался с болгарской нормальной формой, с которой я вас сейчас познакомлю. При нормализации реляционной базы данных до болгарской нормальной формы на каждый учитываемый объект заводится от 7 до 50 штук маленьких, но очень гордых .dbf, в каждом из которых парой строчек описывается очередной признак или атрибут объекта. И не ссылками на записи в библиотеках, а именно сами признаки и атрибуты — словами. Надо ли объяснять, что при накоплении пары сотен тысяч объектов база распухает до сотен гигов этих самых мелких файликов? Для пущего антуража пишется всё это безумие на болгарифицированном FoxPro. Вы знаете, что означают слова «грешка» и «забележка»? А любой специалист, пытавшийся работать с этим чудом, знает, что это «ошибка» и «ярлык». База размещается строго в папке, в которой установлена программа, а программа — строго в C:\%ProgramName%, и никаких компромиссов. Экзешник должен быть запущен из-под админской учётки — это защита от воровства такая, программа постоянно тычется в сервак горе-разработчика, подтверждая свою легальность. Папка программы обязательно должна быть расшарена на полный доступ. Мало того, должен быть открыт полный доступ к трём DLL в System32, как вы его организуете — ваша забота. Приложения работают непосредственно с базой напрямую, программист не слышал ни о каких технологиях доступа к данным. Всё это венчает достойная отдельного абзаца монументальная Марья Петровна, «человек-за-всё», с ложкой в правой руке в качестве скипетра и литровой банкой домашних щей в левой в качестве державы ведущая активную работу на имеющем безлимитное подключение к инету P4 с одним IDE-винтом на 160 гигов — рядом с мокрыми зимними сапогами, без бесперебойника, на одном оплавленном удлинителе с калорифером. (Выдохнул.) Мечта админа. Общение с разработчиком всегда проходит весело, потому что он полон энтузиазма и пишет кириллицей, но с очень-южно-славянским колоритом. Оказывается, о нормальных формах он тоже слышал от кого-то, кто когда-то видел тёщу живого программиста. Но он считает, что один большой файл может повредиться, и тогда умрёт вся база данных, а если накроются несколько мелких файлов, никто и не заметит. К сожалению, рынок сбыта этой программы ограничен спецификой предметной области, и нормально профинансировать разработку ПО на замену этому безобразию — дело довольно рискованное. Так что конкурентов у этого чуда практически нет, и возрастает ценность меня как специалиста по болгарским нормальным формам, знающего, куда бить кувалдой в случае чего. Чувак, извращавшийся с UFO, как я тебя понимаю... У меня чудила так игра Giants: Citizen Kabuto. Ладно бы вверх ногами — мы всегда готовые. Нет, б#я! Это чудо запустилось в аккуратно повернутом набок виде — не игра, а смайлик в движении какой-то получился. Чуть не свернул шею, затем плюнул на это дело. Захожу в свойства графики, поворачиваю изображение на 90 градусов, запускаю по новой. Нет, то, что я повернул не в ту сторону, неудивительно. Удивительно то, что игра это проигнорировала — как запускалась в режиме «бегающего смайлика», так и продолжала. Дубль два, поворот уже в нужную сторону — игра в нужную сторону и повернулась. Были ногами вправо, стали ногами влево. Шею я всё-таки свернул. На работе прислали новую версию программы. Старая версия была ужасна — новую я уже «люблю» за вот такой пассаж из прилагаемой инструкции: Пользователи версии 2.01 могли заметить ошибку при автоматической нумерации выдаваемых справок. Данная ошибка возникает из-за неравномерности записи данных в базу. Эта неравномерность вызвана неправильной эксплуатацией вашего компьютера, а именно возникает от частой записи и удаления файлов (или программ) больших объёмов. Чтобы устранить эту неравномерность, необходимо регулярно проводить дефрагментацию логических дисков вашего компьютера. Зацените, как надо делать — валить глюки своей проги на фрагментирование диска! Это ж додуматься надо. Работаю в компании, обрабатывающей контейнерные грузы. На погрузчиках, таскающих сорокатонные контейнеры по складу, стоят компьютерные терминалы. Работают с корпоративной сеткой через Wi-Fi, операции фиксируются в базе данных. Один из терминалов отвалился от сети. Придя на место и потратив около десяти минут на реанимацию (больше времени на было — останавливается процесс работы погрузчика), я не смог ничего сделать — нет коннекта с сетью, и всё. Оставил, обещав позже разобраться. Хотел выключить терминал — всё равно ж не работает, но услышал ответ водителя погрузчика: «Оставь, он хоть время текущее показывает!» Вот такой вот компьютерный Cartier получился за 5000 у. е. К слову, коннект с сетью восстановился несколько позже сам собой. По долгу службы выполняю техподдержку соседней фирмы (18 машин). Однажды зовут меня — монитор, мол, покраснел. Прихожу, спрашиваю, что делали. Говорят, вчера на системник немного жидкости разлили. В недоумении лезу раскручивать системник. В нос ударяет запах перегара, а на крышке видны красные пятна, которые пытались вытереть. Понимаю, что облили красным вином, а с компом ничего страшного — когда пытались удалить последствия неосторожности, слишком сильно дёрнули системник вперёд и повредили кабель монитора. Решил разыграть девушек. «Зачем системник вином поили? Он напился и покраснел». Девушки враз стали под цвет монитора. Меняю кабель, распечатываю листик с надписью «Компьютеры не спаивать» и вешаю его на стену. Прошло уже почти два месяца, но листик до сих пор висит на своём месте. Каждый раз, как я прохожу мимо него, невольно усмехаюсь. Звонок из филиала, расположенного в другом городе: — Алло! У нас ничего не работает! — Так, а что случилось? Что именно не работает? Какие ошибки? — Все работало, а вдруг ничего не работает! У нас тут клиенты орут — сделайте что-нибудь! — Скажите номер рабочего места. — ***. Открываю VNC — не cоединяется. Лезу по SSH — нет соединения с рабочей станцией. Пингую их сервер — не пингуется. Проверяю у себя: все три провайдера прекрасно работают, VPN-сервер уверенно держит соединения с остальными филиалами. Запросов же на соединение от злополучного филиала не поступало за последние десять минут. В голове начинают крутиться странные мысли. Я не верю в чертовщину и понимаю, что собственноручно настроенный линуксовый сервер не мог никаких сюрпризов преподнести. Соображаю, что же делать дальше. На том конце трубки — недоброе сопение и попытки меня всячески подогнать. На машинах особо грамотных работников есть ярлыки от bash-скриптов, которые при запуске выводят окошко с некоторой информацией о доступности сети, работоспособности ключевых узлов и месте на диске. Сделано это, чтобы облегчить работу саппорта в подобных случаях. Прошу запустить ярлык: — Запустите, пожалуйста, ярлычок с машинкой «скорой помощи», и прочитайте мне, что написано в строке N и M. — О господи, ну я же говорю, что у нас ничего не работает! — Ваш компьютер не работает? А соседний? — Ничего у нас не работает! Меня начинают посещать смутные сомнения. Сервер не работает, машины не работают. Что бы это значило? — Свет-то у вас есть? — Света нет. Полчаса назад выключили! — Так а что ж я сделаю? Звоните своим электрикам — пусть они вопрос решают. — Электрикам звонили. Говорят, трансформатор сгорел, до завтрашнего дня света не будет. А нам как работать? У нас клиентов море! Да, и почему как свет выключили, всё работало почти час, а теперь нет? Я знаю, вы можете! Включайте нам скорее компьютеры! — Понимаете, когда свет выключили, компьютеры работали от бесперебойников, пока не сели аккумуляторы. Потом компьютеры выключились. Пока не дадут свет, ничего работать не будет. Вы инструкцию читали? И что, у вас ни разу свет не выключали до этого? — Ну, а как зарядить аккумуляторы? — Когда включится свет, они сами зарядятся. Ничего самими делать не надо. — Нет, я так не могу. Я понесу бесперебойник домой заряжать. — Нет, этого делать я вам не разрешу. — И что же, мы сегодня больше работать не сможем? — Нет. Закрывайте филиал по техническим причинам. — А что я людям скажу, они же очередь отстояли? Кладу трубку. Вздыхаю, откидываюсь на спинку кресла. Мобильный телефон радостно вибрирует и пищит от входящего SMS. Открываю: cообщение от системы мониторинга Nagios о том, что в этом самом филиале выключили свет. Следом еще две сообщения о том, что батарея на сервере разряжается и сервер выключается. Вовремя! Спасибо любимому сотовому оператору. Добавляю в Nagios оповещения через джаббер. Подарил девушке айфон и старенький, но довольно проворный Windows-ноутбук. Всё было прекрасно до определённого момента, пока айфон не отказался наотрез включаться — не реагировал ни на какие манипуляции. Всё, думаю, дорога в сервис. Дай-ка напоследок, думаю, подключу его к своему макбуку, может, произойдёт что. И верно — как только я воткнул кабель, телефон почувствовал родную душу и бодро мигнул яблочком. Вот так: помимо эффекта присутствия админа, устройству ещё требуется в компанию брат по крови. {678} {677} {676} {675} {674} {673} {672} {671} {670} {669} {668} {667} {666} {665} {664} {663} {662} {661} {660} {659} {658} {657} {656} {655} {654} {653} {652} {651} {650} {649} {648} {647} {646} {645} {644} {643} {642} {641} {640} {639} {638} {637} {636} {635} {634} {633} {632} {631} {630} {629} {628} {627} {626} {625} {624} {623} {622} {621} {620} {619} {618} {617} {616} {615} {614} {613} {612} {611} {610} {609} {608} {607} {606} {605} {604} {603} {602} {601} {600} {599} {598} {597} {596} {595} {594} {593} {592} {591} {590} {589} {588} {587} {586} {585} {584} {583} {582} {581} {580} {579} {578} {577} {576} {575} {574} {573} {572} {571} {570} {569} {568} {567} {566} {565} {564} {563} {562} {561} {560} {559} {558} {557} {556} {555} {554} {553} {552} {551} {550} {549} {548} {547} {546} {545} {544} {543} {542} {541} {540} {539} {538} {537} {536} {535} {534} {533} {532} {531} {530} {529} {528} {527} {526} {525} {524} {523} {522} {521} {520} {519} {518} {517} {516} {515} {514} {513} {512} {511} {510} {509} {508} {507} {506} {505} {504} {503} {502} {501} {500} {499} {498} {497} {496} {495} {494} {493} {492} {491} {490} {489} {488} {487} {486} {485} {484} {483} {482} {481} {480} {479} {478} {477} {476} {475} {474} {473} {472} {471} {470} {469} {468} {467} {466} {465} {464} {463} {462} {461} {460} {459} {458} {457} {456} {455} {454} {453} {452} {451} {450} {449} {448} {447} {446} {445} {444} {443} {442} {441} {440} {439} {438} {437} {436} {435} {434} {433} {432} {431} {430} {429} {428} {427} {426} {425} {424} {423} {422} {421} {420} {419} {418} {417} {416} {415} {414} {413} {412} {411} {410} {409} {408} {407} {406} {405} {404} {403} {402} {401} {400} {399} {398} {397} {396} {395} {394} {393} {392} {391} {390} {389} {388} {387} {386} {385} {384} {383} {382} {381} {380} {379} {378} {377} {376} {375} {374} {373} {372} {371} {370} {369} {368} {367} {366} {365} {364} {363} {362} {361} {360} {359} {358} {357} {356} {355} {354} {353} {352} {351} {350} {349} {348} {347} {346} {345} {344} {343} {342} {341} {340} {339} {338} {337} {336} {335} {334} {333} {332} {331} {330} {329} {328} {327} {326} {325} {324} {323} {322} {321} {320} {319} {318} {317} {316} {315} {314} {313} {312} {311} {310} {309} {308} {307} {306} {305} {304} {303} {302} {301} {300} {299} {298} {297} {296} {295} {294} {293} {292} {291} {290} {289} {288} {287} {286} {285} {284} {283} {282} {281} {280} {279} {278} {277} {276} {275} {274} {273} {272} {271} {270} {269} {268} {267} {266} {265} {264} {263} {262} {261} {260} {259} {258} {257} {256} {255} {254} {253} {252} {251} {250} {249} {248} {247} {246} {245} {244} {243} {242} {241} {240} {239} {238} {237} {236} {235} {234} {233} {232} {231} {230} {229} {228} {227} {226} {225} {224} {223} {222} {221} {220} {219} {218} {217} {216} {215} {214} {213} {212} {211} {210} {209} {208} {207} {206} {205} {204} {203} {202} {201} {200} {199} {198} {197} {196} {195} {194} {193} {192} {191} {190} {189} {188} {187} {186} {185} {184} {183} {182} {181} {180} {179} {178} {177} {176} {175} {174} {173} {172} {171} {170} {169} {168} {167} {166} {165} {164} {163} {162} {161} {160} {159} {158} {157} {156} {155} {154} {153} {152} {151} {150} {149} {148} {147} {146} {145} {144} {143} {142} {141} {140} {139} {138} {137} {136} {135} {134} {133} {132} {131} {130} {129} {128} {127} {126} {125} {124} {123} {122} {121} {120} {119} {118} {117} {116} {115} {114} {113} {112} {111} {110} {109} {108} {107} {106} {105} {104} {103} {102} {101} {100} {99} {98} {97} {96} {95} {94} {93} {92} {91} {90} {89} {88} {87} {86} {85} {84} {83} {82} {81} {80} {79} {78} {77} {76} {75} {74} {73} {72} {71} {70} {69} {68} {67} {66} {65} {64} {63} {62} {61} {60} {59} {58} {57} {56} {55} {54} {53} {52} {51} {50} {49} {48} {47} {46} {45} {44} {43} {42} {41} {40} {39} {38} {37} {36} {35} {34} {33} {32} {31} {30} {29} {28} {27} {26} {25} {24} {23} {22} {21} {20} {19} {18} {17} {16} {15} {14} {13} {12} {11} {10} {9} {8} {7} {6} {5} {4} {3} {2} {1} |
|
| BZIK.INFO |
|
BZIK.INFO |