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

220 плюс-минус

Дома очень часто стал отваливаться инет через ADSL-роутер. Провайдер в деревне один, альтернатив нет и не предвидится, а проблем с ним предостаточно. Поэтому звонить в саппорт я и не думал — оно как-то всегда самопочинялось…

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

Прошло несколько дней. Период колебаний связи дошёл до минуты, линк едва успевал подняться. ТП не отвечает. В отчаянии разваливаюсь на кресле, уставившись в потолок. Любуюсь подмигивающей лампочкой на люстре. Начиная сходить с ума, подмигиваю ей в ответ. Через минуту подмигиваю снова. Через минут ещё раз. И ещё…

Хватаю мультиметр и бегу к распределительному щитку. Так и есть: ежеминутный скачок напряжения. Прозваниваю все цепи, подкручиваю заземление. Нареканий нет, проводку меняли недавно сами. ЖЭК не отвечает. Намечаю обширный план диагностики, но перед штурмом нужно подкрепиться. Готовлюсь к трапезе, наливаю чаю, нашариваю бутерброд… и слышу противный «бх-бх-бх-бх» из холодильника. Замираю с бутербродом в зубах на минуту до следующего старта компрессора. Ах ты падла!

Выключаю холодильник из розетки; поев, удаляюсь, довольный собой. Заменить барахлящий компрессор — дело техники.

7643

Система оптовой подачи чернил

Работаю в нефтяной промышленности. Приходит мастер — абсолютно деревянный в компьютерах мужик.

— Ребята, распечатайте пару листиков.

— Краски нет.

— А какая нужна?

— Да любая! — отмахивается коллега.

К вечеру мастер возвращается с банкой синей нитроэмали.

— Хватит?

— Не, ведро как минимум надо!

И таки ведь раздобыл! Распечатали: такое упорство стоит уважения.