bash.im ithappens.me zadolba.li

Программы

837

Альтависта и красные труселя

Дело было в начале нынешнего тысячелетия. Порнотехнологии с их выпадающими окошками и прочей ерундой развивались гораздо быстрее браузеров, умеющих всю эту «клубничку» блокировать.

В это интересное время я работал в одной полугосударственной компании сисадмином. Стол в моём кабинете стоял так, что от двери монитора видно не было, но, стоило сделать лишь шаг вперёд, взору открывалась вся 19-дюймовая картинка. С интернетом, напротив, повезло — моими стараниями в контору был проведён весьма толстый по тем временам выделенный канал на 256 Кбит/с.

Выпало мне как-то дежурить в выходные (благо, я был молод и не женат). Решил я найти крэк для одной программы. Куда идти? Разумеется, на «Альтависту»!

Я не учёл, того, что эти товарищи уже начали зарабатывать на рекламе порносайтов. На экране открылось окошко с фотографией девушки, которую парень со знанием дела раскладывает на столе в ряд Лорана. Начинаю думать, как бы прибить это окно так, чтобы не породить десятка новых подобного содержания — в конце концов, в кабинет могут зайти сотрудники и посетители.

В этот самый момент на пороге возникает сам директор — крепкий сибирский мужик.

— Работаешь?
— Работаю! — отвечаю я, щёлкая по крестику.

Мои худшие предположения оправдываются. Экран со скоростью 256 Кбит/с заполняется кучей картинок явно «голубого» содержания. Шеф делает роковой шаг вперёд.

Я готов провалиться сквозь пол: доказать, что я не верблюд, просто невозможно, а городок у нас маленький. Начинаю обдумывать, сколько мне понадобится времени, чтобы слинять, пока моя ориентация не станет достоянием общественности.

— Ну, работай! — вдруг улыбается шеф и выходит из кабинета.

За всё время эту ситуацию мы с директором ни разу не затрагивали в разговоре, да и в конторе ко мне хуже относиться не стали. Только когда я пришел просить неделю свадебного отпуска, шеф заметно повеселел и подписал аж две недели.

Мораль: пользуйтесь лицензионными программами, чтобы не прослыть педерастом!

825

Визит к минотавру

В школьные годы, помню, проводили у нас олимпиаду по программированию. Меня, как самого продвинутого, послали на нее. В то время о VB и Delphi никто и не знал почти, поэтому программирвали на Паскале и QBasic'е. Задачи все были сложные, и очень небольшой процент людей смог сделать хоть что-то... Но я смог. Одну задачу.

Суть ее состояла в том, чтобы загрузить из текстового файла матрицу — модель лабиринта, в которой цифрами обозначались стены, пустые пространства и начальная позиция, и выяснить, есть ли из него выход. Предполагалось, что программа должна виртуально "пройти" этот лабиринт, возвращаться из тупиков и следить за тем, чтобы не войти в цикл. Я же сделал проще — нарисовал этот лабиринт на экране, в начальной позиции сделал операцию заливки, а вне границ рисунка — операцию считывания цвета с экрана. Если лабиринт замкнут, заливка не выходила за его пределы, если же выход имелся, заливка распостранялась на весь экран и оператор считывания цвета возвращал значение ее цвета.

До сих пор помню смех моего учителя, который рассказывал про офигевшие лица организаторов, открывших посмотреть текст программы и увидевших 10 банальных строк кода. За одну лишь эту задачу присудили 6 место.Вот оно — нетрадиционное мышление.

824

У программ свои биоритмы

Сидел я за проектом, заработался до глубокой ночи (приблизительно, до трех). Сохраняю исходники, начинаю отлаживать, а прога берет и вылетает с критической ошибкой. Я, ударяясь в панику, начинаю перелопачивать код в поисках огреха, но напрасно. Немного помучившись, я случайно глянул на часы и решил, что утро ночи мудренее.

Утром, продрав глаза, я снова первым делом окинул взглядом проект и решил во что бы то ни стало определить, где же возникала ошибка. Запускаю... и все нормально. И так, и сяк — все прекрасно работает! Начинаю думать, уж не приснилось ли мне.

Ответ оказался прост. Дело было в последнее воскресенье октября. И надо же было попасть именно в три ночи. Программа, "созданная" через час после того, как ее запускают, работать не хотела...

816

Найдите десять отличий

Стажировалась я в одной фирме в должности айтишницы широкого профиля. На эту же самую вакансию устраивалась по очень большому блату некая дева, в компьютерах — ни в зуб ногой.

Попросил меня шеф обучить её минимальным навыкам. Поскольку работы было невпроворот, я решила поделиться с девицей обязанностями и отправила к компу набрать одностраничный документ. Слышу, принтер шуршит — молодец, думаю, справилась. Ан нет! Десять, пятнадцать минут прошло — девушка (надо сказать, очень старательная и ответственная) всё ещё стучит по клавиатуре.

Подхожу и интересуюсь, нужна ли помощь. Рядом лежал образец документа — выключка по ширине, 14 кегль, полуторный интервал. Девица каждый раз набирала документ с вордовским форматированием по умолчанию, распечатывала и любовалась плодами труда. Обнаружив несоответствие, барышня качала головой, всё стирала и набирала заново.

809

Дежавю

Занимаюсь фрилансом — разрабатываю всевозможные мелкие программы для автоматизации процессов.

Недавно писал скрипт, массово приглашающий в группу пользователей крупной социальной сети. Сроки были жесткие — три дня, и времени на тестирование не оставалось. После сдачи проекта в течении недели я исправлял найденные баги, каждый раз архивируя проект и отсылая заказчику.

На днях клиент написал о свеженайденной ошибке. В течении двух часов, пока я чинил программу, меня не покидало ощущение, что такую ошибку я уже видел. Озарило меня вовремя — в разговоре с клиентом я обронил фразу «у меня всё чаще появляется мысль, что вы запускаете старую версию программы».

Отсылаемые архивы я не пронумеровывал, и клиент по невнимательности запускал старый скрипт — назывались-то файлы так же.

Даже если программа никогда не уйдет в публичный доступ и пишется исключительно под одного человека, всегда нумеруйте версии!

797

Алло, Самсунг? Немедленно уберите Ксюшу с экрана!

Работаю программистом, заодно поддерживаю по телефону пользователей. Звонят клиенты, на проводе тётя-бухгалтер.

— Ваша программа не работает!
— Окей, давайте разбираться. Какая ошибка? Что пишет?
— Ничего не пишет! Мы компьютер включаем, а экран чёрный и процессор пищит все время!

(Десятисекундные раздумья).

— Так у вас железо не работает! При чём тут программа?
— Мы же компьютер включаем, чтобы вашу программу запустить!

728

Гауди-младший

У моего друга двое маленьких детей. Он недавно собрал себе новый комп, а старый поставил в детскую. Отпрыски перестали засматриваться на папин компьютер, сами научились играть в простенькие игрушки и запускать мультики.

Как-то раз субботним утром бредёт мой друг на кухню испить водицы «после вчерашнего» и проходит мимо детской. Открывает дверь — за компом сидит его дочь четырёх с половиной лет от роду и чертит в Автокаде. Разные мысли пронеслись в его голове — доминировала, конечно же, «пить надо меньше»...

Расследование показало: ещё до того, как компьютер стал детским, жена задумала освоить Автокад и скачала самоучитель. Потом желание пропало, а программа осталась.

Дочка же, увидев интересный значок на рабочем столе, щёлкнула по нему. Читать она ещё не умеет, но говорящий самоучитель подсказал: «Чтобы провести линию — нажмите здесь». Мигающая рамочка вокруг нужной кнопки окончательно убедила дочку — к тому моменту, как папа проснулся, был уже готов немаленький «чертёж».

701

Конфиг в фа-диезе

У нашей конторы есть небольшие (машин на двадцать) представительства в разных городах, и там, естественно, нужно поддерживать и обслуживать IT-инфраструктуру.

Работает на компьютерах жутко секретный софт, местных админов приглашать никто не торопится, и мне приходится мотаться из одного города в другой, чтобы работа нигде не встала. В последнее время вместо меня занимается этими функциями пара молодых, толковых эникейщиков.

Раздаётся часа в три ночи звонок от одного из бойцов, поехавшего в филиал устанавливать софт: «Ничего не работает». Для запуска программы нужно было настроить базу данных, до этого юный эникейщик ни разу этим не занимался, так что отправился на задание с кучей распечатанных руководств.

После непродолжительного анализа я понимаю, что движок не может найти файл с самой базой данных. Естественно, командую ему проверить файл с путями к файлам. Боец рапортует: «Всё тут правильно».

Через пару часов, когда уже были перепробованы все возможные попытки исправить ситуацию и я, тупо уставившись в свой монитор, думал о своей нелёгкой участи, это чудо позвонило и выдало уникальную фразу: «Может, не недо было перед строчкой с адресом базы ставить решёточку?». Я пытался найти подходящие к ситуации слова, но в итоге просто бросил трубку.

В итоге успокоился, перезвонил и поддтвердил его догадки. Эникейщик посмотрел на комментарий в начале конфиг-файла и решил, что так и надо.

699

Чтобы было

Работал я инженером-электриком в местном филиале одной очень крупной западной фирмы. Филиал наш только открылся, и вот из главного украинского отделения, находящемся в Одессе, нам прислали фирменный программный пакет для проектирования систем электроснабжения.

Программа разрабатывалась, по всей видимости, с досовских времен, к виндовому интерфейсу была адаптирована, но распространялась и устанавливалась без инсталляторов и серийных номеров — простым копированием папки с файлами. За соблюдением условий лицензионного соглашения следил специальный локальный сервер: если количество рабочих станций с запущенной программой превышало лимит, прописанный в файле лицензии, «лишних» пользователей из программы выкидывало.

Действуя по инструкции, мы установили программу на рабочие станции, запустили сервер лицензий... и обнаружили, что одесситы решили сэкономить на покупке дополнительной лицензии и прислали нам копию своего файла-ключа на два рабочих места. А у нас инженеров, включая меня, было трое. И работать надо было всем одновременно.

Для начала Федя (наш самый компьютерно грамотный инженер) взял hex-редактор, открыл файл лицензии и попытался увеличить лимит на количество запущенных копий. Сервер запустился, проработал минуту, увидел «лишнюю» рабочую станцию и выкинул меня из программы.

Я предложил поставить на свою машину файрвол, разрешить приём пакетов от сервера, а отправку заблокировать, чтобы сервер эту машину не видел. Сделали. Две другие машины работали нормально, моя потеряла сервер и работать отказалась. Естественно, не будет же сервер посылать пакеты тому, кого сам не видит.

Дальше были пляски с бубном. Мы запускали в хитрых очерёдностях сервер лицензий, прогу на разных компах, били в бубен. Мы позвонили шефу в Одессу, попросили купить нам нормальную лицению на три машины. Шеф напомнил нам о том, что экономика должна быть экономной.

В отчаянии Федя заново начал просматривать папку программы в поисках хоть какой-нибудь зацепки и нашел... файл-ключ на 16 рабочих мест, спрятанный в одной из подпапок каким-то запасливым админом.