7652
Сижу на одном программистском форуме, помогаю студентам решать задачи на Паскале. Я честно не знаю, что бы я делал без этих дорогих индусов. Наверное, умер бы от скуки. Вот последняя жемчужина.
Необходимо создать текстовый файл, содержащий исходную программу, а также подсчитать длину созданного файла. С созданием файла вопросов не возникает, а вот как подсчитать длину? На ум пришло только:
{Podschet dlini}
Reset(f1);
kol:=0;
while not eof(f1) do begin
readln(f1,l);
For i1:=1 to length(l) do if (l[i]='a')or(l[i]='A') or (l[i]='b')or(l[i]='B')
or(l[i]='c')or(l[i]='C')or(l[i]=' ')or(l[i]='d')or(l[i]='D')
or(l[i]='e')or (l[i]='E') or(l[i]='f') or(l[i]='F')
or (l[i]='g')or (l[i]='G') or (l[i]='h')or(l[i]='H')
or(l[i]='i')or(l[i]='I')or(l[i]='J')or(l[i]='j')
or(l[i]='k')or(l[i]='K')or(l[i]='l')or(l[i]='L')
or (l[i]='m')or (l[i]='M')or(l[i]='n')or(l[i]='N')
or (l[i]='o')or(l[i]='O')or(l[i]='p')or(l[i]='P')
or(l[i]='q')or(l[i]='Q')or (l[i]='r')or (l[i]='R')
or(l[i]='S')or(l[i]='s')or(l[i]='t')or(l[i]='T')
or(l[i]='v')or(l[i]='V') or(l[i]='w')or(l[i]='W')
or(l[i]='u')or(l[i]='U')or(l[i]='x')or(l[i]='X')
or(l[i]='y')or(l[i]='Y')or (l[i]='z')or(l[i]='Z') then
kol:=kol+1;
end;
WriteLn('kol=',kol);
Правильно ли? И каким ещё образом можно подсчитать длину?
7651
Однажды пришлось мне настраивать SMS-уведомления сотрудникам компании о предстоящих мероприятиях. Ну, как обычно: делаю выборку телефонов и имён из БД, перебираю массив и отсылаю сообщение: «%name%, напоминаем вам, что…» Вследствие того, что у одного пользователя может быть больше одного телефонного номера, сделал ещё один перебор массива с номерами внутри массива с сотрудниками. Поставил LIMIT 1 в SQL-запросе, проверил на себе — всё работает. Убрал лимит и запустил скрипт.
Заподозрил что-то неладное, когда скрипт не закончил выполнение спустя пять минут. Сослался на тугодумность SMS-сервиса, но решил проверить лог отправки. Полез в базу и обомлел. Скрипт зациклился и отправлял сообщения только одному человеку: заместителю генерального директора. В общей сложности на её телефон пришло около двух тысяч эсемесок. Пришлось извиняться.
7650
Познакомился я с одним интересным человеком, который трудится монтажником оборудования на публичных мероприятиях. Разговорились. В числе прочего он поведал мне историю из личного опыта.
Как-то раз в Большом театре должен был проходить какой-то масштабный концерт. Соответственно, потребовались трансляционные экраны, и этот человек оказался в бригаде. До генеральной репетиции они успели уложиться с работой на сцене, остальное действо проходило уже с пультами. Все подключено, осталось оттестировать. К счастью, экраны мог видеть только дирижёр, которому наверняка стоило титанических усилий сохранить самообладание. Ребята не нашли ничего лучше, чем проверить экраны нарезкой из «Звёздных войн».
А что делали вы, когда космические корабли бороздили Большой театр?
7649
Устроился я, будучи ещё молодым и наивным, в одну мелкооптовую фармацевтическую контору сисадмином-эникейщиком. Конторка была аж из пяти человек, хоть и являлась филиалом крупной московской фирмы. Начальником был человек импульсивный — очень стремился доказать, что он совсем не хуже головного отделения, и даже завёл свой IT-отдел в виде меня. Себя он считал очень подкованным в компьютерном деле, поэтому начальственная фантазия била через край. Что-то сделать удавалось, от чего-то, наоборот, удавалось отбрехаться.
Однажды шефа посетила мегамысль: увеличение производительности труда менеджеров путём разработки для них специализированного ПО. «Можешь?» — спросил он у меня. «Могу, — ответил я и добавил: — Если ТЗ будет».
День в муках рождался документ, и вот настал торжественный момент передачи задания исполнителю. Я развернул лист и увидел там самое краткое ТЗ в мире:
Программисту написать программу.
7648
— Ни хао, господин директор!
— Присаживайтесь, Ли Цзян, есть разговор… Как вы знаете, наша компания соблюдает коммерческую тайну, и вирусные атаки могут быть фатальными.
— Но, господин директор, на моём рабочем месте нет вирусов!
— Не спешите с выводами, уважаемый. Наши администраторы мониторят весь трафик и о подозрительных моментах сообщают мне лично. Вы можете объяснить мне, что это за файл на распечатке: Герой_асфальта.mp3?
— Это русский рок, господин директор. Я слушал на обеденном перерыве.
— Русский? А знаете ли вы, Ли Цзян, кто такие русские? Вы в курсе, что у них половина пользователей — хакеры, а на досуге они все пишут вирусы? Им даже запретили торговать на eBay! Вы отдаёте себе отчёт?!
— Но, господин директор, это просто музыка…
— Ничего не просто! У нас установлен порядок: имена файлов на китайском языке, иноязычная документация — на английском! Что это за закорючки? Русские буквы? А вы в курсе, что в одну русскую букву «Ё» можно запаковать до пяти вирусов?
— Но…
— Никаких «но»! С завтрашнего дня ваша должность — уборщик складских помещений. Пока на полгода, а там посмотрим.
* * *
Русские антивирусописатели! Мне можно не объяснять; вы спросите сами себя: какой может быть вирус в файле с именем 陪你哭陪你笑.mp3?
7647
Приходится по долгу работы ремонтировать маленькие матричные банковские принтеры. Принтеров скапливается в ремонте по несколько штук; неисправности бывают самые разные, например, головка перегревается при долгой печати и плохо работает, и так далее — не буду перечислять. Их порой невозможно выявить ни сразу, ни даже через 15 минут. Принтер уносят и вскоре приносят назад. Поэтому я стал просить внутри принтера оставлять бумажку с описанием проблемы.
Забегает кассир в мыле с принтером, просит другой. Я спрашиваю про бумажку — говорит, что бумажки нет, и спрашивает, что она должна написать. Я говорю: «Напишите, что не работает и какие претензии к принтеру».
И ведь написала. Дословно: «Не работает, притензии к принтору». Сбивчивым, торопливым почерком. Заработалась.
7646
Разделение обязанностей, говорите? Каждый должен заниматься своим делом, правда ведь? Ну-ну.
Снабженцы заказали главбуху новенький компьютерный стол. Ну, знаете, такой, в котором системник со всех сторон окружён палками, ножками и прочей ерундой, не дающей до него добраться. Сказано — сделано. Привезли. Естественно, в разобранном виде.
Бух сидит на пятом этаже, стол — у входа на первом. Кому нести? Эм-м-м, носильщикам! Приходят два крепких парня в спецовках, хватают чудо мебелестроения, пыхтя, поднимают его на пятый этаж и оставляю в разобранном виде в коридоре возле кабинета со словами: «Мы свою работу сделали».
Бухгалтер в недоумении ищет ответ на вопрос: «А кто собирать-то будет?» Кто-то из её помощниц робко предлагает: вон, мол, у нас же плотник есть. Через пять минут молодой парень, заняв собой полкоридора, собирает окаянный стол.
Настаёт апогей безумства. «А кто будет заносить-то?» В гробовом молчании вызывают старых знакомых — носильщиков. Каково же было их удивление, когда они увидели, что немаленький стол ни в какую не помещается в проём кабинета бухгалтерии!
В итоге я, дипломированный инженер-программист, занимаюсь разборкой и повторной сборкой окаянного стола. Каждому своё? Да уж…
7645
Администрирую небольшое госучреждение. После своего прихода перевёл сервера, не имеющие отношения к особо сертифицированным вундервафлям, на православную ОС, а всё вместе запихнул в систему виртуализации. Так вот, есть у меня привычка давать системам и юзерам забавные имена. Приглашение на прокси-файрволе выглядело так:
humpty@Wall#
Несколько дней подряд были проблемы с электричеством, а бесперебойник давно уже жил на дохлой батарее (госучреждение, деньги идут долго). Каждый раз после очередного сбоя вышеозначенная виртуальная машина невероятным образом падала, и поднимать её приходилось из бэкапа. Много-много раз я жалел о названии, но пути назад не было.
Шалтай-Болтай сидел на стене,
Шалтай-Болтай свалился во сне.
И вся королевская конница,
И вся королевская рать
Не могут Шалтая [...] собрать.
7644
Дома очень часто стал отваливаться инет через ADSL-роутер. Провайдер в деревне один, альтернатив нет и не предвидится, а проблем с ним предостаточно. Поэтому звонить в саппорт я и не думал — оно как-то всегда самопочинялось…
Хранил терпение неделю. Становилось всё хуже: линк падал чуть ли не каждые пять минут. Перепроверил параметры связи — в норме. На форуме обычный гам: все жалуются, ругаются, а я терплю — чего буянить?
Прошло несколько дней. Период колебаний связи дошёл до минуты, линк едва успевал подняться. ТП не отвечает. В отчаянии разваливаюсь на кресле, уставившись в потолок. Любуюсь подмигивающей лампочкой на люстре. Начиная сходить с ума, подмигиваю ей в ответ. Через минуту подмигиваю снова. Через минут ещё раз. И ещё…
Хватаю мультиметр и бегу к распределительному щитку. Так и есть: ежеминутный скачок напряжения. Прозваниваю все цепи, подкручиваю заземление. Нареканий нет, проводку меняли недавно сами. ЖЭК не отвечает. Намечаю обширный план диагностики, но перед штурмом нужно подкрепиться. Готовлюсь к трапезе, наливаю чаю, нашариваю бутерброд… и слышу противный «бх-бх-бх-бх» из холодильника. Замираю с бутербродом в зубах на минуту до следующего старта компрессора. Ах ты падла!
Выключаю холодильник из розетки; поев, удаляюсь, довольный собой. Заменить барахлящий компрессор — дело техники.
7643
Работаю в нефтяной промышленности. Приходит мастер — абсолютно деревянный в компьютерах мужик.
— Ребята, распечатайте пару листиков.
— Краски нет.
— А какая нужна?
— Да любая! — отмахивается коллега.
К вечеру мастер возвращается с банкой синей нитроэмали.
— Хватит?
— Не, ведро как минимум надо!
И таки ведь раздобыл! Распечатали: такое упорство стоит уважения.