Истории с тегом: программизмы

Всего историй: 900

7947

Как жаль

Дорогой сослуживец, «тоже программист»!

До тебя наконец дошла необходимость протестировать твой модуль вместе с моим, два дня как готовым ? Поздравляю! В пятницу, за десять минут до конца рабочего дня? Как жаль. Извини, но я-то намерен уйти вовремя — и уйду.

Спрашиваешь, где он лежит? В сети — там же, где и все последние годы. Не знаешь, где это? Как жаль. И как, ты думаешь, я должен тебе сообщить путь к исполняемым файлам? Диктовать по буквам? Передавать флажковой азбукой или жестовой? Слать по СМС? Как, если ты не удосужился поставить себе хоть какой-нибудь инстант-мессенджер? Не обязательно тот, которым пользуется весь отдел. Я согласен поставить себе такой же, специально для тебя. Нет? Как жаль. Тогда не сиди с оскорблённым видом и не жди, что я побегу к тебе что-то объяснять и показывать: проблема на твоей стороне.

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

Ну, сообрази уже нажать Shift+F2. Ах, у тебя не Total Commander? И не FAR? О, так мсье — антиквар, знающий толк в извращениях, и предпочитает Norton Commander? Тоже нет? То есть элементарные действия с файлами мсье вынужден выполнять перректально, с помощью Проводника, а о существовании чуть более сложных файловых менеджеров даже не догадывается? Как жаль.

Не запускается? А я даже знаю почему: это не рабочий модуль, а отладочный. Откуда ты его выволок? Ты вообще способен отличить директорию с десятком исполняемых файлов от директории с одним экзешником и миллионом исходников? А, ну да, ты же в Проводнике даже файловых расширений не видишь. Как жаль. А считать? Считать-то обучен, «тоже программист»? Жаль, жаль, жаль…

Ну что, успели-таки скопировать два файла за десять минут? Даже несмотря на твою деятельную помощь? Поздравляю! А знаешь что, дружок? Погугли на досуге Хармса: «Четыре иллюстрации того, как новая идея огорашивает человека, к ней не подготовленного». Вот, по-моему, ты, как бы это помягче… Словом, зря ты назвался программистом. Как жаль.

Все совпадения с реальными людьми прошу считать неслучайными.

7935

Ку-ку, Берлин!

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

И вот однажды очередную группу сотрудников вы отправляете с важной миссией в большой процветающий европейский город (скажем, Берлин), снабдив их всеми необходимыми инструкциями для переговоров. В то же время другой группе сотрудников предстоит командировка в Кукуево N-ской области, и поезд отправляется с того же вокзала примерно в это же время.

Те и другие сотрудники прибывают на вокзал. О ужас: специальный персонал, который их встречает, покупает берлинской группе билеты в Кукуево, а другой группе — в Берлин! И сотрудники, ни о чём не подозревая, преспокойно отправляются в чужие командировки.

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

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

В итоге переговоры в Берлине провалены, часть сотрудников в Кукуеве просто потеряна, а другая делает совсем не то, что от них ожидали. И если срыв берлинских переговоров ещё как-то можно было пережить, диссидентов реально было поймать и уволить, то потеря сотрудников становится полным крахом для компании. Когда вы пытаетесь позвонить захваченному сотруднику, сидящему в кукуевском подвале, происходит unhandled exception.

* * *

Именно так чувствовал себя управляющий поток в моём приложении и созданные им объекты, когда диспетчер отправил их на обработку не в те очереди из-за неправильного if().

7911

Отказ по тайм-ауту

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

Обычный день: кто-то настраивает институтскую BBS, кто-то набирает очень важные тексты для декана, кто-то программу пишет, кто-то играет. Слышны негромкие голоса и щёлканье клавиш.

Неожиданно на пороге комнаты появляется Галочка, сорокалетняя сотрудница кафедры информатики, и громко заявляет:

— Жора, вы не могли бы посмотреть моё тело?

Разговоры замолкают. Головы поворачиваются к двери, челюсти падают, глаза расширяются. Жора выдавливает:

— Э-э-э… Пожалуй, нет.

Галочка смотрит на мальчиков, мальчики смотрят на Галочку. Наконец та уточняет:

— Ну, тело моей программы, оно там ошибку выдаёт.

Мальчики выдыхают. Галочка краснеет и убегает. Жора нервно хихикает.

7903

Широковещательно

Однажды я писал программу, которая несколько раз печатала на выбранном принтере один и тот же файл. Тест вроде бы прошёл удачно, и я отправился кодить дальше.

Вдруг мне понадобилось сходить в другой отдел. Проходя мимо одного кабинета, я увидел, как принтер настойчиво выплёвывает листы. Так было в одном, другом, третьем кабинете подряд. Моя программа настойчиво обошла все принтеры в локальной сети, а так как ограничения я не поставил, то на каждом принтере скопилось порядка тридцати заданий. Больше всего не повезло принтеру у кладовщицы, не умудрённой знаниями о технике. Когда принтер начал печатать сам, она испугалась. Жалко человека. Хорошо, что удалось отмазаться, сославшись на технический сбой.

Всегда ставьте ограничение в цикле и будьте внимательны.

7893

А теперь — дискотека!

На втором или на третьем курсе колледжа писали лабы на С++ Builder 6. Лабы эти все я сдавал быстро, и всегда оставалось время до конца занятий на всяческие эксперименты.

Один раз я баловался с функцией Random() и цветом формы. Сделал почти прозрачную форму, поставил ей разворот на весь экран при запуске, убрал бордюры, а на форму кинул таймер, который с дикой скоростью рандомно менял её цвет. Поменял на десктопе иконку запуска Билдера на иконку моего эксперимента, после звонка свалил и забыл о замене.

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

Препод заявил, что я украл у него 15 минут времени и испортил комп. Мы пришли в кабинет, где шла пара; я показал, как избавиться от адского цветного моргания рабочего стола (Alt+F4). Вернулись в кабинет завотделением, она для вида попросила меня больше так не делать, я для вида пообещал.

Вот такие «специалисты» и преподают на айтишных специальностях. Но надо отдать должное преподу: он вскоре уволился из колледжа.

7882

А мы тут ни при чём

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

writeln('Введите строку');

readln(str);

writeln('Сколько раз в этой строке встречается подстрока "мн"?');

readln(n);

writeln('Такая подстрока встречается ',n,' раз');

7845

Пи-пижды пи-пи-пи

В начале девяностых в школе, где я учился, все БК-0010 отдали ученикам после того, как их заменили на IBM PC. Одна машина досталась мне.

Наступило лето, собрались на дачу. Я стал уговаривать родителей взять компьютер с собой. Они очень удивились, ведь там нет телевизора. Но я уговорил: «Вот увидите, я и там найду ему применение».

И нашёл. Не поверите, но я вслепую написал на Бейсике Вильнюс программу-калькулятор. Работала она так: вводишь выражение, она считает и выводит ответ через динамик морзянкой.

7795

Куй тебе, а не железо

Впервые в жизни писал программу для общения с микроконтроллером через COM-порт. К концу рабочего дня выражение «послать NAK» стало восприниматься несколько иначе.

7794

Вернулся с true

Подвязались как-то раз на шабашку: собрать подвесные потолки у одного клиента. Дело нехитрое, и мы с энтузиазмом принялись за работу. Среди нас был кодер до мозга костей.

В один из таких шабашных дней нужно было спуститься на склад за траверсами (основа каркаса потолка), причём мы не могли решить, сколько их нужно: 15 или всё-таки 16. Пресекая споры по этому вопросу, Валера сказал, обращаясь к кодеру:

— Вася, ну глянь, что там в пачке, и, наверное, тащи её сюда.

— Не вопрос.

Славный программист выполнил задачу на все сто процентов! Этот чудак, не заметив начатую пачку, взял новую, прочитал на этикетке, что в ней 20 штук, вскрыл её, пересчитал содержимое и принёс — правильно, все 20 штук.

Корректно ставьте задачи, особенно кодерам.

7782

Не прошёл по цвету глаз

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

Однажды друг с какой-то компьютерной тусовки притащил диск Mandrake и сказал: «Вот тебе настоящая хакерская ось!» Да, в те далёкие времена представления о хакерах у нас были весьма своеобразные. Mandrake встала в параллель с виндой легко и непринуждённо: тогдашних юзеров fdisk и прочие консольные вещицы не пугали, так как использовались и под виндой достаточно широко.

В те времена я увлекался программированием на С и даже думал идти учиться в IT-сферу, поэтому я решил попробовать портировать свои досовские программы на Mandrake. Это сейчас найти документацию легко и в магазине и в сети, а тогда интернет был довольно дорог, Фидо в наших местностях не пошло, а книг по линуксу в магазинах не было. Поэтому мне пришлось ограничиваться встроенным man. Через него был найден компилятор gcc.

Сперва gcc ругнулся на conio.h. Ну и фиг с ним: я оттуда только getch() использовал. А потом он заявил на все косинусы и синусы: «Undefined reference». Мозги, испорченные виндовыми и досовскими IDE, долго не давали понять, что на самом деле это линковщик кричал о неподключённой библиотеке. Потом я, правда, догадался, но вместо -lm давал опцию -l libm.a, на что ld резонно заявлял: «Cannot find».

В итоге бросил я это дело и не пошёл учиться на программиста, так как понял: если я не могу заставить скомпилироваться программу под линуксом, мне там делать нечего.