Суть ее состояла в том, чтобы загрузить из текстового файла матрицу — модель лабиринта, в которой цифрами обозначались стены, пустые пространства и начальная позиция, и выяснить, есть ли из него выход. Предполагалось, что программа должна виртуально "пройти" этот лабиринт, возвращаться из тупиков и следить за тем, чтобы не войти в цикл. Я же сделал проще — нарисовал этот лабиринт на экране, в начальной позиции сделал операцию заливки, а вне границ рисунка — операцию считывания цвета с экрана. Если лабиринт замкнут, заливка не выходила за его пределы, если же выход имелся, заливка распостранялась на весь экран и оператор считывания цвета возвращал значение ее цвета.
До сих пор помню смех моего учителя, который рассказывал про офигевшие лица организаторов, открывших посмотреть текст программы и увидевших 10 банальных строк кода. За одну лишь эту задачу присудили 6 место.Вот оно — нетрадиционное мышление.
29 апреля 2009, 09:00
Как-то раз чинил компьютер у кладовщиков. После того, как машину перетащили в другое помещение, что-то случилось с видеокартой: разрешение 800x600 работает нормально, но если установить более высокое значение, то само разрешение не увеличивается, а рабочая область начинает скроллироваться при подведении мышки к краям экрана.
Оказалось, что у монитора есть встроенные динамики. Штекер кладовщики всадили в разъем видеовыхода типа «тюльпан» на видеокарте, а та посчитала, что появился ещё один монитор. Windows, в свою очередь, установила драйвера стандартного дисплея и ограничила максимальное разрешение.
29 апреля 2009, 09:00
Сижу дома вечером, программирую потихоньку. Опера, как обычно, стучится в мейлрушный почтовый ящик и внезапно наглухо виснет. Снимаю задачу, перезапускаю, жму «принять почту» — опять подвисает. Злюсь, но времени разбираться нет — отключаю автопроверку и работаю дальше.
На следующий день прихожу с утра в офис, где в качестве почтового клиента тоже используется Опера. Та же история — браузер виснет с загрузкой машины на 100%.
Обращаю внимание на том, что сборщик почты явно спотыкается на том же самом письме. В голове мелькают версии от простейшго бага до изощренных спам-рассылок, которые через дыру в браузере запускают тяжелый джаваскрипт или, не дай Бог, системный процесс.
Истина, как всегда, оказалась где-то рядом. После трёх попыток перезапуска Оперы я убедился, что клиент скорее мёртв, чем жив, и зашёл в ящик через веб-интерфейс. Роковым письмом оказалась новостная рассылка крупной IT-конференции. Письмецо в 10 строк с полем To:, в котором через запятую были перечислены несколько тысяч адресатов, тянуло на 185 килобайт.
Как оказалось, Опера не висла, а медленно и печально отрисовывала километровый список — еле управлялась за минуту.
#828: Тенденции советского нейл-дизайна
29 апреля 2009, 11:00
В далёкую эпоху всемогущего ассемблера для программирования активно использовались перфокарты. Недавно я с удивлением узнал, насколько нестандартное применение нашли им студентки.
Когда в карте пробивали отверстия, оставалось большое количество маленьких прямоугольничков. Модницы-программистки при помощь иголок и пинцетов аккуратно выкладывали картонными «битами» узоры на ногтях, а затем фиксировали рисунки лаком.
30 апреля 2009, 09:00
В университете при проверке лабораторной работы преподаватель спрашивает студента:
— Почему нет проверки входного значения?
— Да какой нормальный человек, задавая время, будет писать что-либо, кроме цифр и двоеточия — особенно, если видит надпись «Введите время в формате ЧЧ:ММ»?
— Молодой человек, хороший программист должен учитывать всё! Откуда вы знаете, какой пользователь будет работать с этой программой?
Задумчивый голос откуда-то из глубин аудитории ставит точку:
— Ага, пользователь — это периферийное устройство хаотического ввода...
#830: О подруге Лены Головач
30 апреля 2009, 09:00
В связи с расширением и модой на стандартизацию в нашей фирме было решено заводить понятные, «говорящие» логины для пользователей. После обсуждений решили остановиться на варианте «имя пользователя + первая буква фамилии».
Сегодня дописывал модуль для программы, вытягивающий из домена информацию о пользователях во внешнюю базу данных. Закончив очередной кусок кода, я запустил программу.
Читать дальше