504
Мама на днях решила "почистить компьютер" от всего ненужного. Не нужным, естественно, оказался мой многострадальный курсак по с++.
В универе рассказываю одногруппнице. Она смеётся надо мной.
Я: А ты типа никогда ничего не теряла?
Она: Я в детстве рисовала в Paint и не знала о существовании команды "Отменить". Я всегда делаю бэкапы."
Представляю себе это тяжелое детство...
503
Разрабатываем одну большую корпоративную систему - огромная база данных, большие нагрузки на сервера ну и веб-интерфейс, куда ж без него. Интерфейс этот пишется с использованием одной библиотечки, которая в свою очередь вовсю использует AJAX. Библиотека open-source, но как-то раз преподнесла совершенно неожиданный сюрприз.
Решил я ее обновить, скачал новую версию, пересобрал, залил - все вроде в порядке. Но при заходе на одну из страничек сервер стал тут же падать! Не поняв с первого раза, как стабильно работающее приложение может вдруг выкинуть такой фокус, стал внимательно изучать логи. И обнаружил там, о ужас, StackOverflowException! При этом, точно зная что рекурсию нигде не использую, порылся в своем коде пару минут, да и решил заглянуть в код библиотеки. А там увидел вот такую прелесть на месте того метода, который вызывал ошибку:
/**
* @return
* @see #getPage()
* @deprecated
*/
public int getPageIndex() {
return getPageIndex();
}
Вот оказывается как надо объявлять метод устаревшим, чтобы его впредь больше никогда не использовали!
502
Небольшая IT-компания, занимаемся в основном внедрениями 1С.
Выезд в деревню, бугалтерия, выделили компы, нужно сделать им 1С-Бухгалтерию.
Приезжаю, захожу в офис, сидят бухгалтеры, вокруг стоят компьютеры, на столах у каждого помимо машин лежат калькулятор и счеты.
Спрашиваю, зачем счеты.
- А вдруг калькулятор неправильно посчитает? Мы проверяем.
Боюсь рассказывать им, для чего нужна 1С-Бухгалтерия....
501
Подрабатывали как-то с другом ремонтом ноутбуков.
Стандартная поломка - замена разбитой матрицы. Матрица куплена, поставлена и проверена, все работает. Приходит клиент за своим ноутом, мы с напарником выносим пациента на демонстрацию, ставим на тумбочку в коридоре, включаем его в розетку, все пускается, матрица не работает.
Опаньки.
Рассказываем про непредвиденные обстоятельства, скрытые дефекты, а в голове перспектива разбора, да еще не дай бог матрицу тащить назад сдавать. Просим пять минут - разобраться, что могло случиться.
Уходим назад в комнату, подключаемся к розетке, включаем - чудо! Матрица завелась. Ну и слава богу, мало ли что это могло быть. Работает вроде бы стабильно. Выключаем, тащим обратно клиенту показать победу. Ставим в коридоре, включаем и... правильно, не работает! Ну, думаем, приплыли - догорело что-то, уносим в комнату. Работает. Одновременно приходит мысль, что все дело в розетке. Воображение рисует разные картины - вплоть до перевернутой кверх ногами синусоиды. И тут на третьем подходе меня осенило.
С веселым, но несколько нервным гоготом я выволок с полочки той самой тумбочки, куда мы ставили ноут на демонстрацию, спрятанный до лучших времен динамик 35-ГДН, лежавший там вверх магнитом диаметром около 12 сантиметров. Своим магнитным полем агрегат пробивал слой ДСП, корпус ноута с материнкой и заставлял срабатывать магнитный флип на матрице ноутбука. А тот считал, что крышка всегда закрыта...
500
Работаю тестировщиком в офшорной софтверной компании. На одном проекте со мной трудятся китайские разработчики, которые регулярно, простите, жгут. Не могу не поделиться последним их подвигом.
Есть на одной из форм поле "Дата рождения". Во время тестирования было выяснено, что значения туда могут быть введены уж очень фантастические (люди столько не живут), крайней датой, которую можно сохранить, было 1 января 1573 года, после крайней даты система вываливала страшный ексепшен.
Иду в багтрек и пишу предложение китайским друзьям - ребята, есть смысл во-первых, определить приемлемый диапазон дат (это ж не просто дата, а дата рождения), во-вторых сделать юзер-френдли сообщение, на случай если пользователь опечатается в этом поле, дабы не пугать его.
В следующей версии приходит фикс. Иду проверять, ввожу какую-то, совсем уж мохнатую дату, на что получаю "user friendly" сообщение:
"The date should be between January 1, 1753 and December 31, 9999"
Это ж как масштабно мыслят эти парни - система, видимо должна работать не только с супер-долгожителями, но и с людьми, которые родятся только через несколько тысячелетий...
499
Лет несколько назад, во времена диалапа и коннекта на 19200, переписывались между собой две конторы, по электронной почте.
Одна контора запросила у другой некий документ. А чтобы тем было проще документ составить - отправили форму, для заполнения. Листов 10 - всякие ячейки, столбцы и прочее в том же духе.
Предварительно распечатав эту форму на принтере, и отсканировав каждую страницу.
В TIF. Несколько мегабайт.
Поскольку в почтовый ящик оно не лезло - запаковали в архив, разбитый на пару десятков кусков.
И отправили. По диалапу.
Восторгу получателей не было предела: надо все это скачать, собрать, распаковать, потом по картинкам набить вручную в Экселе, заполнить...
И месть была страшна: документ был изготовлен, заполнен, распечатан, отсканирован, картинки вставлены в Вордовский документ (ах, с каким трудом еле шевелился под многомегабайтным грузом Ворд!...), все это запаковано в архив и порезано кусками.
И отправлено по диалапу обратно...
498
Работал в довольно большой конторе, преподавал там IT-основы для сотрудников и сотрудниц. В основном, контингент - это бухгалтеры и юристы. Контора не бедная, все мониторы - либо ЖК, либо трубы не меньше 21". При этом, снабжение централизованное и очень, очень медленное...
Ну вот, как-то раз меня спрашивают слушательницы после занятий:
С: Не подскажете, где можно купить защитный экран на монитор?
Я: Зачем он вам? ЖК мониторы не излучают, а у больших труб есть своя встроенная защита.
С: Нет, вы не поняли. Нам нужна защита для монитора. Нашей начальнице место в контракте не понравилось, она ткнула карандашиком, а монитор вытек...
497
Лекция по дисциплине "операционные системы".
На большом экране периодически сменяются картинки - лекция на слайдах. Препод объясняет отличия разработчика от пользователя и программиста: "Разработчики скрывают от пользователя ненужные подробности работы аппаратной части компьютера, избавляют нас от детального изучения алгоритмов работы устройств, значит, кто они?".. На слайде медленно грузится изображение православной иконы... "Они святые" - с невозмутимым видом продолжает препод.
496
Лет 7 назад пятилетнему сынишке директора нашей маленькой конторки по продаже компов был собран компьютер.
Все бы ничего, но парень оказался двольно любознательным и чересчур пристрастился к компу, сутками просиживая за ним.
Отец, дабы отучить чадо от вредной привычки, забирал на работу с собой переходник от мышки. Через какое-то время он все-таки заметил, что сынок в его отсутствие компьютером как-то пользуеться. Долго ходил и чесал репу директор. А выяснилось все случайно: сынишка, нередко посещая сборочную, углядел нужный девайс - переходник, и прихватил его с собой, да не один, на всякий случай.
В нижнем ящике его стола, обнаружился целый склад переходников. Дотумкал в свои пять лет до того, как и какой применять, он сам.