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

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

7316

В свободное плавание

У нас есть традиция: каждый 256-й день года мы вспоминаем желторотую юность под чёрно-белыми флагами с Весёлым Роджером и устраиваем маленький сабантуй.

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

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

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

Всех с праздником — и привет «выпускникам»!

7300

С юзерским рылом в калашный ряд

Мы обслуживаем петербургское представительство крупного корейского морского перевозчика. У фирмы есть штаб-квартира в Лондоне, где трудятся программисты-корейцы.

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

Созвонились. Говорим на английском. Даже понимаем друг друга, несмотря на ужасные акценты. Дайте, говорит, мне удалённый доступ, я всё сделаю. Предоставляю доступ и наблюдаю, тихо посмеиваясь.

Кореец скачивает дистрибутив на рабочий стол, а он не запускается: у наших пользователей нет прав на запуск из профиля. С умным (наверное) видом пытается скопировать файл в корень диска C:, чтобы получить права «Создатель/владелец» — а вот хрен ему: нашим пользователям нельзя ничего создавать в корне системного диска, только в своём профиле. Копирует на второй диск — с него тоже не запускается.

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

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

* * *

Разрабатываете софт? Недостаточно отловить все баги и ошибки. Включайте мозг, реализуя «второстепенные функции» установки и обновления.

7297

Отбитый четырьмя минутами

Жена попросила научить её программированию. Я программист, жена — бухгалтер, в компьютерах разбирается на уровне обычного пользователя. Решил начать с чего попроще, избрав для обучения старый-добрый Турбо-Паскаль.

Ну, сидит она, ковыряется в Паскале и вдруг спрашивает: «А почему тут время 12:44, хотя уже четыре часа?» Ну, думаю, мало ли, часы сбились — комп-то старый, могла батарейка сесть. Смотрю на экран и сгибаюсь пополам от хохота. В Турбо-Паскале, если кто не помнит, в нижней строчке отображаются строка и позиция курсора через двоеточие. Сквозь смех посоветовал подвигать курсор стрелками и полюбоваться путешествием во времени.

7240

Сад расходящихся Анечек

Банк. Пишем новую версию ПО — старая не справляется с нагрузкой. Спрашиваем у авторов, как подключиться к базе с проводками. Отвечают, мол, вы чего, тут всё секьюрно! Мы вам напишем процедурку недели через три. Права настроим — будете иметь доступ только туда, куда надо иметь.

Коллега к девочкам-операторам — смотрит, как у них там доступ организован. Ага: каждая вводит логин-пароль в окошке. Через час сидим, отлаживаем взаимодействие с базой, которая думает, что все мы — Анна Иванова.

7237

Ваши действия?

Есть такая бабушка в Перми, зовут Тамара Петровна. В 1986 году она пришла в Славянку преподавать информатику. Студенты ленивые, компов никто в жизни не видел. Первый урок.

— Кто знает, что такое алгоритм?

Молчание.

— Чудаки, это же интересно!

— Не-е, бред какой-то…

— Не только интересно, но и жизненно.

— Гы-гы-гы…

— Хорошо. Парни, давайте с вами сыграем в игру. Называется «доеду домой на лифте».

— Чё за хрень? Ну давайте…

— Вот вы заходите в подъезд. Перед вами лифт. Что вы будете делать, чтоб уехать на нём?

— Кнопку нажал да поехал.

— Кнопка уже горит. Ваши действия?

— Ну, ждём, пока хмырь из лифта вылезет, и едем.

— А за вами соседка с коляской стоит. Ты что, один поедешь?

— Не, чё, я не пацан, что ли? Девчонке помогу в лифт заехать.

— А если бабуля с палочкой?

— Подожду, мне не в падлу пенсионера пропустить.

Тамара Петровна рисует какие-то квадратики на доске.

— А не западло спросить у пенсионера, на какой этаж она едет, чтоб кнопку нажать?

— Не, это норма…

— А какие могут ещё быть ситуации?

Аудиторию как прорвало — а Тамара Петровна только успевает квадратики рисовать и подписывать. Все выговорились, а она на доску показывает:

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

— Ну-у-у…

— А знаете, что такое дуракоустойчивость в программировании?

— Не-а.

— А ты кнопку нажал, там что-то погудело, двери открываются, а лифта нет. Ты шагнёшь в шахту?

— Блин, забыли, Тамара Петровна! Давайте вот тут в алгоритм добавим ветвление…

С 1986 года я не вылезаю из-за компов. Работал программистом, барыжил железом, заправлял картриджи, а сейчас админю. Низкий поклон вам, Тамара Петровна Алексеева — вы мой самый любимый преподаватель!

7215

Соло на кирпичных бубнах

Середина девяностых, торговая компания со множеством перевозок. Вызывает меня однажды г-н директор и ставит задачу оптимизации логистики. Да-да, ту самую задачу коммивояжёра, но для нескольких участников. При этом даёт сроку до послезавтра. То ли отчёт ему подали убыточный, то ли ещё что — но задача поставлена, делать надо. Запираюсь в техотделе и за двое суток чистого времени на одной пепси-коле выдаю работающую эвристику. Тестирую — вроде работает. Отдаю начальству, получая обещание премии.

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

7211

ПККП

Вы не знаете, что такое ПККП? Это персональный компьютер коллективного пользования. Порождение времени, когда за АТ/косые/40М/EGA можно было купить пару новых «жигулей». Хотя вру — тогда «косых» флопов ещё не было. Были 2×5,25" — один для дискет на 360K, второй — для 1,2M. Понятно, что за такие деньги даже наш небедный НИИ не мог себе позволить ставить каждому программисту по «эйтишке». Поэтому покупался один комп с цветным дисплеем на отдел.

Программисты, алгоритмисты и математики в НИИ были не на Паскале писаны, а вскормлены чистым ассемблером/360, вспоены Фортраном G, а на сладкое у них был PL/I. А кто постарше, те еще Автокод М-6000 помнили. И загрузчик они на память руками с панели вводили. Поэтому этим железным людям объём диска в 42 мегабайта на отдел из восьми активно пишущих и считающих человек был достаточен для решения любых задач.

— Вася! Я сейчас нагенерю тебе 20 мегабайт тестовых данных.

— Погоди-погоди. Сейчас я своё на ленту запишу.

— Как там Серёжина фигня считается?

— Уже 50 лент обработала. Ещё 150 осталось. Операторы второй день матерятся.

— Ребята? А кому это тут 32К памяти не хватило, чтоб несчастные 10 мегабайт обсчитать? Сделаю это в 16К!

— А я в 8К!

— Делай!

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

И вот этим людям достался в руки комп, у которого было 640К памяти и 42 метра винта. В результате на машине буквы дисков заканчивались на K: cистемный на 2М и восемь раз по 5М. И это было счастье!

7199

Оц-тоц-недодоц

Просматривая код коллеги, наткнулся на совершенно непонятное для меня имя переменной:

Length dots = digitization->getDotsCount();

Length nedoDots = dots − 1;

Решив выяснить, что скрывается за таким названием, я обратился к нему. Объяснение меня изрядно повеселило.

— Понимаешь, переменная dots содержит полное количество точек оцифровки. Однако при делении интервала оцифровки на отрезки их, очевидно, получается на один меньше, чем точек. Таким образом, количество отрезков — это недоколичество точек, или недоточки, или, в переводе на английский, недоDots!

7192

Махнёмся не глядя?

1988 год. Кооперативная компьютерная компания. Тянем сети, настраиваем жуткие устройства с таинственным названием «модем» и так далее. Я пишу на ассемблере некую систему для мгновенного общения, вроде аськи, только для DOS и на восемь лет раньше. Всё вроде бы работает, но как-то криво: то окно не выскакивает, то кракозябры лезут, то ещё что-то, и так уже месяц.

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

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

Наутро (ну, часа в три дня) я прихожу в контору, сажусь за комп, запускаю и обнаруживаю, что всё работает. То есть не просто работает, а идеально работает. Поворачиваю голову к соседу слева. У него такое же выражение лица.

— Всё работает?

— Ага.

— А когда?..

— А кто?..

В углу просыпается Саша.

— А вы что, вообще ни хрена не помните?

— Не-а.

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

7159

Юнит-тестирование ёршика

Суровые будни релиз-инженера. Захожу в туалет. В диспенсер заряжены бумажные полотенца низкого качества. Кто-то до меня вырвал из торчащего полотенца середину — остальное, видно, достать не смог. Хватаюсь с двух сторон за огрызки, дёргаю. Повреждённое полотенце в руках, из устройства снова торчит целое новое. В голове мысль: «Jenkins build is back to normal».